/* 基础样式优化 - 科研学术风格配色 */
:root {
      --primary-color: #2c6bed;
      /* 更深的蓝色，学术感更强 */
      --secondary-color: #20a0aa;
      /* 青绿色，科研风格 */
      --accent-color: #7b5df2;
      /* 紫色点缀 */
      --success-color: #08a37b;
      /* 更柔和的绿色 */
      --warning-color: #e9a03b;
      /* 橙黄色 */
      --danger-color: #e95d6a;
      /* 柔和的红色 */
      --bg-color: #f7f9fc;
      /* 更冷色调的背景 */
      --card-bg: #ffffff;
      /* 卡片背景色 */
      --card-hover-bg: #f7faff;
      /* 卡片悬停背景 */
      --text-primary: #334866;
      /* 深蓝灰色文本 */
      --text-secondary: #5a6b84;
      /* 中等蓝灰色文本 */
      --text-light: #8599b3;
      /* 浅蓝灰色文本 */
      --border-color: #e6ecf5;
      /* 边框颜色 */
      --border-radius: 8px;
      --box-shadow: 0 4px 20px rgba(44, 107, 237, 0.07);
      /* 带主色调的阴影 */
      --transition: all 0.3s ease;

      /* 新增小组件的配色和背景 */
      --widget-bg-1: #f8fafd;
      --widget-bg-2: #f8fafd;
      /* 统一背景色 */
      --widget-bg-3: #f8fafd;
      /* 统一背景色 */
      --widget-bg-4: #f8fafd;
      /* 统一背景色 */
      --widget-border-hover: rgba(44, 107, 237, 0.2);
      --widget-shadow: 0 4px 12px rgba(44, 107, 237, 0.06);

      /* 玻璃拟态效果相关变量 */
      --glass-bg: rgba(255, 255, 255, 0.7);
      --glass-border: rgba(255, 255, 255, 0.1);
      --glass-shadow: 0 8px 32px rgba(31, 38, 135, 0.1);
      --glass-blur: blur(8px);

      /* 统一卡片样式变量 */
      --card-gradient: linear-gradient(135deg, rgba(44, 107, 237, 0.02) 0%, rgba(123, 93, 242, 0.02) 100%);
      --card-shadow: 0 8px 20px rgba(44, 107, 237, 0.08);
      --card-border: 1px solid rgba(44, 107, 237, 0.1);
      --card-accent-line: linear-gradient(to bottom, var(--primary-color), var(--accent-color));
      --card-item-bg: rgba(255, 255, 255, 0.7);
      --card-item-hover-bg: rgba(255, 255, 255, 0.9);
      --card-item-border: 1px solid rgba(44, 107, 237, 0.08);
      --card-item-shadow: 0 3px 10px rgba(44, 107, 237, 0.06);
      --card-item-hover-shadow: 0 6px 15px rgba(44, 107, 237, 0.1);
      --badge-bg: rgba(44, 107, 237, 0.08);
      --badge-hover-bg: rgba(44, 107, 237, 0.15);
      --button-border-radius: 6px;
      /* 新增按钮圆角变量 */
}

body {
      background-color: var(--bg-color);
      color: var(--text-primary);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
            sans-serif;
      overflow-x: hidden;
      padding: 0;
      margin: 0;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
}

.app-container {
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      position: relative;
      background: linear-gradient(135deg, var(--bg-color) 0%, #eef4ff 100%);
      animation: fadeInPage 0.8s ease-out;
}

@keyframes fadeInPage {
      from {
            opacity: 0;
      }

      to {
            opacity: 1;
      }
}

/* 增强页面内容过渡动画 */
.main-layout,
.header,
.footer-progress {
      animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
      from {
            opacity: 0;
            transform: translateY(10px);
      }

      to {
            opacity: 1;
            transform: translateY(0);
      }
}

/* 标题栏美化 */
.header {
      background: var(--glass-bg) !important;
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 24px;
      box-shadow: 0 2px 20px rgba(44, 107, 237, 0.08);
      height: 64px;
      z-index: 10;
      position: sticky;
      top: 0;
      border-bottom: 1px solid var(--glass-border);
}

.header-left {
      display: flex;
      align-items: center;
}

.header-left h1 {
      margin: 0 0 0 12px;
      color: var(--primary-color);
      font-size: 18px;
      font-weight: 600;
      letter-spacing: 0.5px;
      position: relative;
      overflow: hidden;
}

.header-left h1::after {
      content: '';
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 0;
      height: 2px;
      background-color: var(--primary-color);
      transition: width 0.3s ease;
}

.header-left h1:hover::after {
      width: 100%;
}

.logo {
      height: 36px;
      filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
      transition: var(--transition);
}

.logo:hover {
      transform: rotate(5deg) scale(1.05);
}

.header-right {
      display: flex;
      gap: 16px;
      align-items: center;
}

.header-icon {
      font-size: 18px;
      color: var(--text-secondary);
      cursor: pointer;
      transition: var(--transition);
      width: 36px;
      height: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
      background: rgba(247, 249, 252, 0.6);
      position: relative;
      overflow: hidden;
}

.header-icon:hover {
      color: var(--primary-color);
      background-color: rgba(44, 107, 237, 0.08);
      transform: translateY(-1px);
}

.header-icon::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 70%);
      transform: scale(0);
      transition: transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);
}

.header-icon:active::before {
      transform: scale(2);
      transition: transform 0s;
}

/* 主内容区域美化 */
.main-layout {
      flex: 1;
      padding: 24px;
      background: var(--bg-color);
      position: relative;
}

.main-layout>div {
      display: flex;
      gap: 24px;
      position: relative;
}

/* 增加主内容背景效果 */
.main-layout::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 10% 20%, rgba(44, 107, 237, 0.03) 0%, transparent 60%),
            radial-gradient(circle at 90% 80%, rgba(123, 93, 242, 0.03) 0%, transparent 60%);
      pointer-events: none;
}

/* 内容区域平滑显示效果 */
.main-layout>div>* {
      animation: slideIn 0.5s ease-out forwards;
      opacity: 0;
}

@keyframes slideIn {
      from {
            opacity: 0;
            transform: translateY(20px);
      }

      to {
            opacity: 1;
            transform: translateY(0);
      }
}

.main-layout>div>*:nth-child(1) {
      animation-delay: 0.1s;
}

.main-layout>div>*:nth-child(2) {
      animation-delay: 0.2s;
}

.main-layout>div>*:nth-child(3) {
      animation-delay: 0.3s;
}

.main-layout>div>*:nth-child(4) {
      animation-delay: 0.4s;
}

/* 侧边栏美化 */
.sidebar {
      width: 240px;
      min-width: 240px;
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      padding: 20px;
      border-radius: var(--border-radius);
      display: flex;
      flex-direction: column;
      gap: 24px;
      box-shadow: var(--glass-shadow);
      transition: var(--transition);
      border: 1px solid var(--glass-border);
      position: relative;
      overflow: hidden;
}

.sidebar::before {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: radial-gradient(circle, rgba(44, 107, 237, 0.03) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: -1;
      pointer-events: none;
}

.sidebar:hover {
      box-shadow: 0 10px 30px rgba(44, 107, 237, 0.15);
      transform: translateY(-2px);
}

.sidebar:hover::before {
      opacity: 1;
}

.start-detection-btn,
.action-btn {
      border-radius: 8px;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
}

.start-detection-btn {
      height: 48px;
      font-size: 16px;
      background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%) !important;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      box-shadow: 0 6px 20px rgba(44, 107, 237, 0.35);
      color: white !important;
      letter-spacing: 0.8px;
      font-weight: 600;
      position: relative;
      z-index: 1;
      border-radius: var(--button-border-radius);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      overflow: hidden;
}

.start-detection-btn::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--primary-color) 100%);
      opacity: 0;
      transition: opacity 0.4s ease;
      z-index: -1;
}

.start-detection-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 25px rgba(44, 107, 237, 0.5);
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--primary-color) 100%) !important;
}

.start-detection-btn:active {
      transform: translateY(1px);
      box-shadow: 0 4px 15px rgba(44, 107, 237, 0.4);
}

/* 脉冲效果增强 */
.start-detection-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 5px;
      height: 5px;
      background: rgba(255, 255, 255, 0.5);
      opacity: 0;
      border-radius: 100%;
      transform: scale(1, 1) translate(-50%);
      transform-origin: 50% 50%;
}

.start-detection-btn:hover::after {
      animation: ripple 0.6s ease-out;
}

@keyframes ripple {
      0% {
            transform: scale(0, 0);
            opacity: 0.5;
      }

      100% {
            transform: scale(20, 20);
            opacity: 0;
      }
}

/* 美化系统状态卡片 */
.system-status-section {
      margin-bottom: 16px;
      padding: 16px;
      transition: all 0.3s ease;
      position: relative;
      /* 应用基础卡片样式 */
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border-radius: 12px;
      border: 1px solid rgba(44, 107, 237, 0.15);
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
}

/* 直接使用card-container中的悬停效果，不再重复定义 */
.system-status-section:hover {
      border-color: rgba(44, 107, 237, 0.3);
      background: var(--card-item-hover-bg);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-2px);
}

.system-status-section::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 30% 30%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: -1;
      pointer-events: none;
}

.system-status-section h3 {
      margin: 0 0 16px 0;
      font-size: 16px;
      font-weight: 600;
      color: var(--text-primary);
      display: flex;
      align-items: center;
      padding-left: 10px;
      position: relative;
}

.system-status-section h3::before {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 4px;
      height: 16px;
      background-color: #3c7eff;
      border-radius: 2px;
}

.status-item {
      background: var(--card-item-bg);
      border-radius: 10px;
      padding: 12px;
      display: flex;
      align-items: center;
      margin-bottom: 12px;
      transition: all 0.3s ease;
      border: var(--card-item-border);
      box-shadow: var(--card-item-shadow);
}

.status-item:last-child {
      margin-bottom: 0;
}

.status-icon {
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 6px;
      margin-right: 12px;
      position: relative;
}

.status-icon-cpu {
      background-color: rgba(24, 144, 255, 0.15);
}

.status-icon-cpu::before {
      content: '';
      position: absolute;
      width: 16px;
      height: 16px;
      background-color: #1890ff;
      border-radius: 3px;
}

.status-icon-memory {
      background-color: rgba(114, 46, 209, 0.15);
}

.status-icon-memory::before {
      content: '';
      position: absolute;
      width: 16px;
      height: 16px;
      background-color: #722ed1;
      border-radius: 3px;
}

.status-icon-time {
      background-color: rgba(250, 173, 20, 0.15);
}

.status-icon-time::before {
      content: '';
      position: absolute;
      width: 16px;
      height: 16px;
      background-color: #faad14;
      border-radius: 50%;
}

.status-content {
      flex: 1;
}

.status-header {
      display: flex;
      justify-content: space-between;
      margin-bottom: 4px;
}

.status-label {
      font-size: 14px;
      color: #666;
}

.status-value {
      font-size: 14px;
      font-weight: 500;
      color: #333;
}

.status-cpu .status-value {
      color: #1890ff;
}

.status-memory .status-value {
      color: #722ed1;
}

.status-time-value {
      font-size: 14px;
      font-weight: 500;
      color: #faad14;
      background-color: rgba(250, 173, 20, 0.1);
      padding: 2px 8px;
      border-radius: 10px;
      display: inline-block;
}

.status-item .ant-progress {
      margin-top: 4px;
}

.status-item .ant-progress-inner {
      background-color: rgba(0, 0, 0, 0.04);
}

.status-item .ant-progress-bg {
      transition: all 0.3s ease;
}

.status-item:hover {
      transform: translateY(-3px);
      box-shadow: var(--card-item-hover-shadow);
      background: var(--card-item-hover-bg);
      border-color: var(--widget-border-hover);
}

.status-item::after {
      content: '';
      position: absolute;
      bottom: 0;
      right: 0;
      width: 60px;
      height: 60px;
      background: linear-gradient(135deg, transparent, rgba(44, 107, 237, 0.03));
      border-radius: 50%;
      z-index: -1;
      opacity: 0;
      transform: translate(50%, 50%);
      transition: all 0.3s ease;
}

.status-item:hover::after {
      opacity: 1;
      transform: translate(30%, 30%);
}

.status-icon {
      width: 40px;
      height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2));
      border-radius: 10px;
      position: relative;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.03);
      flex-shrink: 0;
      transition: all 0.3s ease;
}

.status-item:hover .status-icon {
      transform: scale(1.05) rotate(-5deg);
      box-shadow: 0 6px 12px rgba(44, 107, 237, 0.1);
}

.status-icon-cpu::before {
      content: '';
      position: absolute;
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, #108ee9, #1890ff);
      border-radius: 6px;
      box-shadow: 0 2px 8px rgba(24, 144, 255, 0.2);
}

.status-icon-cpu::after {
      content: '';
      position: absolute;
      width: 12px;
      height: 12px;
      background: white;
      border-radius: 3px;
      box-shadow: inset 0 0 0 2px rgba(24, 144, 255, 0.8);
}

.status-icon-memory::before {
      content: '';
      position: absolute;
      width: 20px;
      height: 16px;
      background: linear-gradient(135deg, #722ed1, #a16ae8);
      border-radius: 4px;
      box-shadow: 0 2px 8px rgba(114, 46, 209, 0.2);
}

.status-icon-memory::after {
      content: '';
      position: absolute;
      width: 16px;
      height: 3px;
      background: white;
      border-radius: 2px;
      top: 14px;
      box-shadow: 0 6px 0 white;
}

.status-icon-time::before {
      content: '';
      position: absolute;
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, #fa8c16, #faad14);
      border-radius: 50%;
      box-shadow: 0 2px 8px rgba(250, 140, 22, 0.2);
}

.status-icon-time::after {
      content: '';
      position: absolute;
      width: 2px;
      height: 8px;
      background: white;
      top: 10px;
      left: 19px;
      transform-origin: bottom;
      transform: rotate(-45deg);
      border-radius: 1px;
      box-shadow: 2px -6px 0 white;
}

.status-content {
      flex: 1;
      min-width: 0;
}

.status-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 8px;
}

.status-label {
      font-size: 14px;
      font-weight: 500;
      color: var(--text-secondary);
      white-space: nowrap;
}

.status-value {
      font-size: 14px;
      font-weight: 600;
      color: var(--primary-color);
      padding: 2px 10px;
      background: rgba(44, 107, 237, 0.08);
      border-radius: 20px;
      transition: all 0.3s ease;
}

.status-item:hover .status-value {
      background: rgba(44, 107, 237, 0.16);
      transform: scale(1.05);
}

.status-cpu .status-value {
      color: #1890ff;
      background: rgba(24, 144, 255, 0.1);
}

.status-memory .status-value {
      color: #722ed1;
      background: rgba(114, 46, 209, 0.1);
}

.status-cpu:hover .status-value {
      background: rgba(24, 144, 255, 0.18);
}

.status-memory:hover .status-value {
      background: rgba(114, 46, 209, 0.18);
}

.status-time-value {
      font-weight: 600;
      font-size: 15px;
      color: #fa8c16;
      margin-top: 4px;
      padding: 4px 10px;
      background: rgba(250, 140, 22, 0.08);
      border-radius: 8px;
      display: inline-block;
      transition: all 0.3s ease;
}

.status-time:hover .status-time-value {
      background: rgba(250, 140, 22, 0.16);
      transform: translateX(4px);
}

.status-item .ant-progress {
      height: 8px;
}

.status-item .ant-progress-inner {
      background-color: rgba(0, 0, 0, 0.04);
      border-radius: 4px;
      overflow: hidden;
}

.status-item .ant-progress-bg {
      border-radius: 4px;
      transition: all 0.4s cubic-bezier(.19, 1, .22, 1);
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.status-item:hover .ant-progress-bg {
      animation: pulse-progress 1.5s infinite;
}

@keyframes pulse-progress {
      0% {
            box-shadow: 0 0 0 0 rgba(44, 107, 237, 0.3);
      }

      70% {
            box-shadow: 0 0 0 4px rgba(44, 107, 237, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(44, 107, 237, 0);
      }
}

.sidebar-actions {
      display: flex;
      flex-direction: column;
      margin-top: 20px;
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border-radius: 12px;
      padding: 16px;
      padding-top: 20px;
      /* Increased top padding */
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
      border: 1px solid rgba(44, 107, 237, 0.15);
      position: relative;
      overflow: visible;
      /* Changed from hidden to visible to show the label */
      transition: var(--transition);
      gap: 12px;
      /* Add consistent gap between buttons */
}

.sidebar-actions:hover {
      border-color: rgba(44, 107, 237, 0.3);
      background: var(--card-item-hover-bg);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-3px);
}

/* 添加标题 */
.sidebar-actions::before {
      content: '操作面板';
      position: absolute;
      top: -12px;
      left: 50%;
      transform: translateX(-50%);
      font-size: 14px;
      font-weight: 500;
      color: rgba(0, 0, 0, 0.65);
      letter-spacing: 1px;
      background: linear-gradient(to right, #f0f2f5, white, #f0f2f5);
      padding: 2px 15px;
      border-radius: 10px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
      border: 1px solid rgba(230, 235, 245, 0.8);
      z-index: 10;
      white-space: nowrap;
      overflow: visible;
}

.action-btn {
      height: 44px;
      font-size: 15px;
      font-weight: 500;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      border-radius: var(--button-border-radius);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--border-color);
      color: var(--text-secondary);
      background: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(240, 245, 255, 0.9));
      position: relative;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
      letter-spacing: 0.5px;
      width: 100%;
      white-space: nowrap;
}

.action-btn::before {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg,
                  rgba(65, 120, 255, 0.2),
                  rgba(65, 120, 255, 0.1),
                  rgba(65, 120, 255, 0));
      transition: left 0.5s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: var(--button-border-radius);
}

/* 添加脉冲光环效果 */
.action-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle, rgba(65, 120, 255, 0.8) 0%, rgba(65, 120, 255, 0) 70%);
      border-radius: 10px;
      transform: translate(-50%, -50%) scale(0);
      opacity: 0;
      transition: transform 0.6s ease, opacity 0.6s ease;
      z-index: -1;
}

.action-btn .anticon {
      font-size: 18px;
      transition: all 0.3s ease;
}

.btn-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      transition: all 0.3s ease;
      margin-right: 8px;
      /* 增加图标与文字的间距 */
      position: relative;
}

/* 增加图标与文字的间距 */
.action-btn .btn-icon+span {
      margin-left: 2px;
}

/* 为不同按钮设置不同图标颜色 */
.action-btn:nth-child(1) .btn-icon {
      color: #1890ff;
      filter: drop-shadow(0 0 2px rgba(24, 144, 255, 0.3));
}

.action-btn:nth-child(2) .btn-icon {
      color: #52c41a;
      filter: drop-shadow(0 0 2px rgba(82, 196, 26, 0.3));
}

.action-btn:nth-child(3) .btn-icon {
      color: #fa8c16;
      filter: drop-shadow(0 0 2px rgba(250, 140, 22, 0.3));
}

.action-btn:nth-child(4) .btn-icon {
      color: #f5222d;
      filter: drop-shadow(0 0 2px rgba(245, 34, 45, 0.3));
}

.action-btn:nth-child(5) .btn-icon {
      color: #722ed1;
      filter: drop-shadow(0 0 2px rgba(114, 46, 209, 0.3));
}

.action-btn:hover .btn-icon {
      animation: icon-bounce 0.5s ease;
}

@keyframes icon-bounce {

      0%,
      100% {
            transform: scale(1);
      }

      50% {
            transform: scale(1.15) rotate(8deg);
      }
}

.action-btn[disabled] .btn-icon {
      color: rgba(0, 0, 0, 0.25);
      filter: none;
}

.action-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(65, 120, 255, 0.2);
      border-color: rgba(65, 120, 255, 0.6);
      color: #4178ff;
      background: linear-gradient(to right, rgba(255, 255, 255, 0.95), rgba(240, 245, 255, 0.95));
}

.action-btn:hover .anticon {
      transform: scale(1.1) rotate(5deg);
}

.action-btn:hover::before {
      left: 100%;
}

.action-btn:hover::after {
      transform: translate(-50%, -50%) scale(1.5);
      opacity: 0.1;
}

.action-btn:active {
      transform: translateY(1px);
      box-shadow: 0 1px 4px rgba(65, 120, 255, 0.15);
}

.action-btn:active::after {
      transform: translate(-50%, -50%) scale(0.9);
      opacity: 0.2;
}

/* 为每个按钮添加不同的悬停颜色和效果 */
.action-btn:nth-child(1) {
      border-left: 3px solid #1890ff;
}

.action-btn:nth-child(1):hover {
      border-color: rgba(24, 144, 255, 0.6);
      color: #1890ff;
}

.action-btn:nth-child(1):hover::after {
      background: radial-gradient(circle, rgba(24, 144, 255, 0.8) 0%, rgba(24, 144, 255, 0) 70%);
}

.action-btn:nth-child(2) {
      border-left: 3px solid #52c41a;
}

.action-btn:nth-child(2):hover {
      border-color: rgba(82, 196, 26, 0.6);
      color: #52c41a;
}

.action-btn:nth-child(2):hover::after {
      background: radial-gradient(circle, rgba(82, 196, 26, 0.8) 0%, rgba(82, 196, 26, 0) 70%);
}

.action-btn:nth-child(3) {
      border-left: 3px solid #fa8c16;
}

.action-btn:nth-child(3):hover {
      border-color: rgba(250, 140, 22, 0.6);
      color: #fa8c16;
}

.action-btn:nth-child(3):hover::after {
      background: radial-gradient(circle, rgba(250, 140, 22, 0.8) 0%, rgba(250, 140, 22, 0) 70%);
}

.action-btn:nth-child(4) {
      border-left: 3px solid #f5222d;
}

.action-btn:nth-child(4):hover {
      border-color: rgba(245, 34, 45, 0.6);
      color: #f5222d;
}

.action-btn:nth-child(4):hover::after {
      background: radial-gradient(circle, rgba(245, 34, 45, 0.8) 0%, rgba(245, 34, 45, 0) 70%);
}

.action-btn:nth-child(5) {
      border-left: 3px solid #722ed1;
}

.action-btn:nth-child(5):hover {
      border-color: rgba(114, 46, 209, 0.6);
      color: #722ed1;
}

.action-btn:nth-child(5):hover::after {
      background: radial-gradient(circle, rgba(114, 46, 209, 0.8) 0%, rgba(114, 46, 209, 0) 70%);
}

/* 禁用状态 */
.action-btn[disabled] {
      opacity: 0.7;
      cursor: not-allowed;
      background: rgba(240, 240, 240, 0.8);
      color: rgba(0, 0, 0, 0.25);
      border-color: #d9d9d9;
      box-shadow: none;
      transform: none !important;
}

.action-btn[disabled]:hover {
      transform: none;
      box-shadow: none;
      border-color: #d9d9d9;
      color: rgba(0, 0, 0, 0.25);
}

.action-btn[disabled]::before,
.action-btn[disabled]::after {
      display: none;
}

/* 添加按钮加载动画 */
@keyframes button-pulse {
      0% {
            box-shadow: 0 0 0 0 rgba(65, 120, 255, 0.4);
      }

      70% {
            box-shadow: 0 0 0 10px rgba(65, 120, 255, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(65, 120, 255, 0);
      }
}

.action-btn.loading {
      animation: button-pulse 1.5s infinite;
}

/* 图像区域美化 */
.image-section {
      width: 680px;
      min-width: 680px;
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      border-radius: var(--border-radius);
      padding: 24px;
      display: flex;
      flex-direction: column;
      box-shadow: var(--glass-shadow);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--glass-border);
      position: relative;
      z-index: 1;
}

.image-section::before {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: radial-gradient(circle, rgba(44, 107, 237, 0.02) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: -1;
      pointer-events: none;
}

.image-section:hover {
      box-shadow: 0 15px 35px rgba(44, 107, 237, 0.15);
      transform: translateY(-3px);
}

.image-section:hover::before {
      opacity: 1;
}

.image-container {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 20px;
      overflow: hidden;
      min-height: 600px;
      position: relative;
      padding: 2px;
}

.image-wrapper {
      position: relative;
      width: 600px;
      height: 600px;
      margin: 0 auto;
      overflow: visible;
      background-color: rgba(247, 249, 252, 0.7);
      display: flex;
      justify-content: center;
      align-items: center;
      border: 1px solid var(--border-color);
      border-radius: 10px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: inset 0 0 20px rgba(44, 107, 237, 0.03);
}

.image-wrapper:hover {
      border-color: rgba(44, 107, 237, 0.2);
      box-shadow: inset 0 0 25px rgba(44, 107, 237, 0.05),
            0 5px 15px rgba(44, 107, 237, 0.08);
}

.image-scale-wrapper {
      position: relative;
      width: 600px;
      height: 600px;
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: hidden;
      z-index: 1;
      border-radius: 10px;
}

.image-scale-wrapper img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      transform-origin: center;
      user-select: none;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: 10px;
      opacity: 0;
      animation: fadeIn 0.5s ease forwards;
}

@keyframes fadeIn {
      from {
            opacity: 0;
      }

      to {
            opacity: 1;
      }
}

.image-scale-wrapper canvas {
      border-radius: 10px !important;
}

.image-scale-wrapper img:hover {
      filter: brightness(1.03) contrast(1.02);
}

/* 确保图片容器在各种状态下都保持圆角 */
.image-wrapper>div {
      border-radius: 10px;
      overflow: hidden;
}

/* 为图片添加更细致的边框和阴影效果 */
.image-wrapper img {
      border-radius: 10px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
}

/* 添加漂亮的悬停效果 */
.image-wrapper:hover img {
      box-shadow: 0 5px 15px rgba(44, 107, 237, 0.12);
}

/* 确保边界框内的图片保持圆角 */
.bounding-box img {
      border-radius: 10px;
}

.image-navigation {
      position: absolute;
      top: 50%;
      left: 0;
      right: 0;
      transform: translateY(-50%);
      display: flex;
      justify-content: space-between;
      padding: 0 20px;
      pointer-events: none;
      z-index: 1000;
}

.image-navigation button {
      background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%);
      border: 1px solid rgba(255, 255, 255, 0.3);
      color: #fff;
      width: 40px;
      height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      pointer-events: auto;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: 50%;
      box-shadow: 0 4px 15px rgba(44, 107, 237, 0.3);
      position: relative;
      overflow: hidden;
}

.image-navigation button::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 70%);
      transform: scale(0);
      transition: transform 0.5s cubic-bezier(0.19, 1, 0.22, 1);
}

.image-navigation button:hover {
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--primary-color) 100%);
      border-color: rgba(255, 255, 255, 0.5);
      transform: scale(1.15);
      box-shadow: 0 8px 25px rgba(44, 107, 237, 0.4);
}

.image-navigation button:active::before {
      transform: scale(3);
      transition: transform 0s;
}

.image-navigation button:disabled {
      background: linear-gradient(135deg, #a0b0c9 0%, #c9d0e0 100%);
      border-color: rgba(255, 255, 255, 0.2);
      color: rgba(255, 255, 255, 0.4);
      cursor: not-allowed;
      transform: none;
      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.detection-progress {
      margin-top: 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      color: var(--text-secondary);
      gap: 16px;
      padding: 12px;
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.5);
      box-shadow: 0 2px 8px rgba(44, 107, 237, 0.04);
      border: 1px solid var(--border-color);
      transition: var(--transition);
}

.detection-progress:hover {
      background: rgba(255, 255, 255, 0.8);
      box-shadow: 0 4px 12px rgba(44, 107, 237, 0.08);
}

.detection-progress .ant-progress {
      width: 220px;
}

.detection-progress .ant-progress-bg {
      background: linear-gradient(90deg, var(--primary-color) 0%, var(--accent-color) 100%);
      border-radius: 4px;
      transition: width 0.5s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 1px 3px rgba(44, 107, 237, 0.2);
}

.image-pagination {
      margin-top: 16px;
      display: flex;
      justify-content: center;
      align-items: center;
      padding: 12px 0;
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      border-radius: 8px;
      border: 1px solid var(--glass-border);
      box-shadow: var(--glass-shadow);
      transition: var(--transition);
}

.image-pagination:hover {
      box-shadow: 0 6px 16px rgba(44, 107, 237, 0.1);
}

.upload-placeholder {
      width: calc(100% - 4px);
      height: calc(100% - 4px);
      margin: 2px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      color: var(--text-light);
      border: 2px dashed #dae2f0;
      border-radius: 10px;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      background: rgba(247, 249, 252, 0.5);
      position: relative;
      overflow: visible;
      z-index: 1;
}

.upload-placeholder::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at center, rgba(44, 107, 237, 0.03) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: -1;
      pointer-events: none;
}

.upload-placeholder:hover {
      background-color: rgba(44, 107, 237, 0.03);
      border-color: var(--primary-color);
      border-style: dashed;
      border-width: 2px;
      box-shadow: 0 5px 20px rgba(44, 107, 237, 0.08);
      transform: translateY(-2px);
}

.upload-placeholder:hover::before {
      opacity: 1;
}

.upload-placeholder .anticon {
      font-size: 48px;
      margin-bottom: 16px;
      color: var(--text-light);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      z-index: 2;
}

.upload-placeholder:hover .anticon {
      color: var(--primary-color);
      transform: translateY(-5px) scale(1.1);
}

.upload-placeholder p {
      margin: 5px 0 0;
      font-size: 16px;
      font-weight: 500;
      transition: var(--transition);
      position: relative;
      z-index: 2;
}

.upload-placeholder:hover p {
      color: var(--primary-color);
      transform: translateY(2px);
}

/* 增加上传区域的辅助说明文字 */
.upload-placeholder::after {
      content: "点击或拖拽文件至此";
      position: absolute;
      bottom: 30%;
      font-size: 14px;
      color: var(--text-light);
      opacity: 0;
      transform: translateY(10px);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      z-index: 2;
}

.upload-placeholder:hover::after {
      opacity: 0.7;
      transform: translateY(0);
}

/* 修复antd上传组件的默认样式 */
.ant-upload.ant-upload-drag {
      background: transparent !important;
      border: none !important;
      width: 100%;
      height: 100%;
      overflow: visible !important;
}

.ant-upload.ant-upload-drag .ant-upload {
      padding: 0 !important;
      overflow: visible !important;
}

.ant-upload.ant-upload-drag:hover .upload-placeholder {
      border-color: var(--primary-color);
      background-color: rgba(44, 107, 237, 0.03);
}

/* 确保拖放状态时边框完全可见 */
.ant-upload.ant-upload-drag-hover .upload-placeholder {
      border-color: var(--primary-color) !important;
      border-style: dashed !important;
      border-width: 2px !important;
      background-color: rgba(44, 107, 237, 0.06) !important;
      outline: none !important;
      box-shadow: 0 0 0 4px rgba(44, 107, 237, 0.08) !important;
}

/* 确保拖放区域内的元素在拖放过程中保持可见 */
.upload-placeholder .anticon,
.upload-placeholder p,
.upload-placeholder::after {
      position: relative;
      z-index: 2;
}

/* 结果区域美化 */
.results-section {
      width: 360px;
      min-width: 360px;
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      border-radius: var(--border-radius);
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 16px;
      box-shadow: var(--glass-shadow);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--glass-border);
      position: relative;
      overflow: hidden;
}

.results-section::before {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: radial-gradient(circle, rgba(123, 93, 242, 0.03) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.results-section:hover {
      box-shadow: 0 15px 35px rgba(123, 93, 242, 0.12);
      transform: translateY(-3px);
}

.results-section:hover::before {
      opacity: 1;
}

.results-header {
      padding-bottom: 16px;
      border-bottom: 1px solid var(--border-color);
      position: relative;
}

.results-header h2 {
      margin: 0 0 16px;
      font-size: 16px;
      color: var(--text-primary);
      font-weight: 600;
      display: flex;
      align-items: center;
      position: relative;
      z-index: 1;
}

.results-header h2::before {
      content: "";
      display: inline-block;
      width: 6px;
      height: 6px;
      background-color: var(--accent-color);
      border-radius: 50%;
      margin-right: 8px;
      box-shadow: 0 0 0 3px rgba(123, 93, 242, 0.15);
      animation: pulse-accent 2s infinite;
}

@keyframes pulse-accent {
      0% {
            box-shadow: 0 0 0 0 rgba(123, 93, 242, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(123, 93, 242, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(123, 93, 242, 0);
      }
}

/* 检测结果列表容器样式优化 */
.defects-container {
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border-radius: 12px;
      padding: 18px;
      border: 1px solid rgba(44, 107, 237, 0.15);
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
      min-height: 320px;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      overflow: auto;
      position: relative;
      isolation: isolate;
}

.defects-container::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 30% 30%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: -1;
      pointer-events: none;
}

.defects-container:hover {
      border-color: rgba(44, 107, 237, 0.3);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-2px);
}

.defects-container:hover::before {
      opacity: 1;
}

/* 美化滚动条 */
.defects-container::-webkit-scrollbar {
      width: 6px;
}

.defects-container::-webkit-scrollbar-track {
      background: #f1f1f1;
      border-radius: 3px;
}

.defects-container::-webkit-scrollbar-thumb {
      background: #c0c6d0;
      border-radius: 3px;
      transition: var(--transition);
}

.defects-container::-webkit-scrollbar-thumb:hover {
      background: #a0a8b4;
}

.defects-list {
      display: flex;
      flex-direction: column;
      gap: 14px;
      overflow: visible;
      padding-right: 4px;
}

/* 检测结果项样式优化 */
.defect-item {
      display: flex;
      gap: 12px;
      padding: 20px;
      border-radius: 12px;
      background: var(--card-item-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      min-height: 120px;
      box-sizing: border-box;
      box-shadow: var(--card-item-shadow);
      border: var(--card-item-border);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
      margin-bottom: 12px;
}

.defect-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 4px;
      height: 0%;
      background: linear-gradient(to bottom, var(--primary-color), var(--accent-color));
      transition: height 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: 2px;
}

.defect-item:hover {
      transform: translateY(-3px) translateX(2px);
      box-shadow: 0 8px 24px rgba(44, 107, 237, 0.15);
      border-color: rgba(44, 107, 237, 0.2);
      background: rgba(255, 255, 255, 0.95);
}

.defect-item:hover::before {
      height: 100%;
}

/* 检测结果信息样式优化 */
.defect-info {
      width: 100%;
      position: relative;
      z-index: 1;
      padding: 0 20px;
      display: flex;
      flex-direction: column;
      gap: 12px;
}

/* 只对非空状态的检测结果应用左对齐样式 */
.defect-item:not(.empty-defect) .defect-info h4,
.defect-item:not(.empty-defect) .defect-info p {
      padding-left: 12px;
}

.defect-item:not(.empty-defect) .label-width {
      display: inline-block;
      min-width: 60px;
      margin-left: -4px;
}

/* 保持空状态的居中显示 */
.defect-item.empty-defect .defect-info {
      text-align: center;
      padding: 0;
}

.defect-item.empty-defect .defect-info h4,
.defect-item.empty-defect .defect-info p {
      justify-content: center;
}

.defect-info h4,
.defect-info p {
      margin: 0;
      padding: 8px 12px;
      border-radius: 6px;
      background: rgba(247, 249, 252, 0.7);
      border: 1px solid rgba(44, 107, 237, 0.08);
      transition: all 0.3s ease;
      min-height: 36px;
      display: flex;
      align-items: center;
      width: 100%;
      box-sizing: border-box;
      font-size: 14px;
      font-weight: normal;
      color: var(--text-primary);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      line-height: 1.5;
      position: relative;
      padding-left: 20px;
      /* 调整左内边距，让标签有足够空间 */
}

.defect-info h4::before {
      content: counter(defect-counter);
      position: absolute;
      left: -24px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, rgba(44, 107, 237, 0.7), rgba(123, 93, 242, 0.7));
      /* 降低背景色的不透明度 */
      color: rgba(255, 255, 255, 0.95);
      /* 稍微降低文字的不透明度 */
      font-size: 12px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity 0.3s ease;
      z-index: 2;
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.15);
      /* 添加柔和的阴影 */
      backdrop-filter: blur(2px);
      /* 添加轻微的模糊效果 */
      -webkit-backdrop-filter: blur(2px);
}

.defect-info p {
      margin: 0;
      padding: 10px 15px;
      border-radius: 8px;
      background: rgba(247, 249, 252, 0.7);
      border: 1px solid rgba(44, 107, 237, 0.08);
      transition: all 0.3s ease;
      font-size: 14px;
      color: var(--text-secondary);
      display: flex;
      align-items: center;
      position: relative;
}

.defect-info p::before {
      display: none;
      /* 移除小圆点 */
}

.defect-item:hover .defect-info h4 {
      transform: translateX(5px);
      color: var(--primary-color);
}

.defect-item:hover .defect-info h4::before {
      opacity: 1;
      box-shadow: 0 3px 8px rgba(44, 107, 237, 0.2);
      /* 悬停时稍微增强阴影 */
}

.defect-item:hover .defect-info p {
      background: rgba(247, 249, 252, 0.9);
      border-color: rgba(44, 107, 237, 0.15);
      transform: translateX(8px);
      box-shadow: 0 2px 8px rgba(44, 107, 237, 0.08);
}

.defect-item:hover .defect-info p::before {
      display: none;
      /* 确保悬停时也不显示小圆点 */
}

/* 为坐标和置信度添加特殊样式 */
.defect-info p:nth-of-type(1) {
      background: rgba(44, 107, 237, 0.04);
      border-color: rgba(44, 107, 237, 0.1);
}

.defect-info p:nth-of-type(2) {
      background: rgba(123, 93, 242, 0.04);
      border-color: rgba(123, 93, 242, 0.1);
}

.defect-item:hover .defect-info p:nth-of-type(1) {
      background: rgba(44, 107, 237, 0.06);
      border-color: rgba(44, 107, 237, 0.15);
}

.defect-item:hover .defect-info p:nth-of-type(2) {
      background: rgba(123, 93, 242, 0.06);
      border-color: rgba(123, 93, 242, 0.15);
}

/* 添加渐进式动画延迟 */
.defect-item:hover .defect-info p:nth-of-type(1) {
      transition-delay: 0.05s;
}

.defect-item:hover .defect-info p:nth-of-type(2) {
      transition-delay: 0.1s;
}

/* 美化滚动条 */
.defects-container::-webkit-scrollbar {
      width: 6px;
}

.defects-container::-webkit-scrollbar-track {
      background: rgba(247, 249, 252, 0.8);
      border-radius: 3px;
}

.defects-container::-webkit-scrollbar-thumb {
      background: rgba(44, 107, 237, 0.2);
      border-radius: 3px;
      transition: all 0.3s ease;
}

.defects-container::-webkit-scrollbar-thumb:hover {
      background: rgba(44, 107, 237, 0.3);
}

/* 空状态样式优化 */
.defect-item.empty-defect {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.8), rgba(247, 249, 252, 0.8));
      border: 1px dashed rgba(44, 107, 237, 0.2);
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      min-height: 120px;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      padding: 24px;
}

.defect-item.empty-defect::before {
      display: none;
      /* 移除左侧的渐变条 */
}

.defect-item.empty-defect .defect-info {
      padding: 0;
      /* 重置内边距 */
      align-items: center;
      /* 居中对齐 */
}

.defect-item.empty-defect .defect-info h4 {
      color: var(--text-secondary);
      margin-bottom: 8px;
      padding: 0;
      /* 移除左侧内边距 */
      font-size: 16px;
      font-weight: 500;
      background: none;
      /* 移除背景 */
      border: none;
      /* 移除边框 */
      box-shadow: none;
      /* 移除阴影 */
}

.defect-item.empty-defect .defect-info h4::before {
      display: none;
      /* 移除序号 */
}

.defect-item.empty-defect .defect-info p {
      color: var(--text-light);
      font-style: italic;
      background: none;
      border: none;
      padding: 0;
      font-size: 14px;
      box-shadow: none;
      margin-top: 4px;
}

.defect-item.empty-defect:hover {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(247, 249, 252, 0.9));
      border-color: var(--primary-color);
      transform: scale(1.02);
      box-shadow: 0 8px 24px rgba(44, 107, 237, 0.12);
}

.defect-item.empty-defect:hover .defect-info h4,
.defect-item.empty-defect:hover .defect-info p {
      transform: none;
      /* 移除悬停时的位移效果 */
      background: none;
      border: none;
      box-shadow: none;
}

.defect-item.empty-defect:hover .defect-info p::before {
      display: none;
      /* 移除悬停时的小圆点 */
}

/* 添加检测结果项的序号标记 */
.defect-item {
      counter-increment: defect-counter;
}

.defect-info h4::before {
      content: counter(defect-counter);
      position: absolute;
      left: -30px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
      color: white;
      font-size: 12px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity 0.3s ease;
}

.defect-item:hover .defect-info h4::before {
      opacity: 1;
}

/* 添加检测结果的标签样式 */
.defect-tag {
      display: inline-block;
      padding: 4px 12px;
      border-radius: 12px;
      font-size: 12px;
      font-weight: 500;
      margin-bottom: 8px;
      background: rgba(44, 107, 237, 0.1);
      color: var(--primary-color);
      transition: all 0.3s ease;
}

.defect-item:hover .defect-tag {
      background: rgba(44, 107, 237, 0.15);
      transform: translateX(4px);
}

/* 模型区域美化 */
.model-section {
      width: 280px;
      min-width: 280px;
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      border-radius: var(--border-radius);
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 20px;
      box-shadow: var(--glass-shadow);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--glass-border);
      position: relative;
      overflow: hidden;
}

.model-section::before {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: radial-gradient(circle, rgba(32, 160, 170, 0.03) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.model-section:hover {
      box-shadow: 0 15px 35px rgba(32, 160, 170, 0.12);
      transform: translateY(-3px);
}

.model-section:hover::before {
      opacity: 1;
}

.model-header {
      margin-bottom: 16px;
}

.model-header h2 {
      margin: 0 0 16px;
      font-size: 16px;
      color: var(--text-primary);
      font-weight: 600;
      display: flex;
      align-items: center;
      position: relative;
      z-index: 1;
}

.model-header h2::before {
      content: "";
      display: inline-block;
      width: 6px;
      height: 6px;
      background-color: var(--secondary-color);
      border-radius: 50%;
      margin-right: 8px;
      box-shadow: 0 0 0 3px rgba(32, 160, 170, 0.15);
      animation: pulse-secondary 2s infinite;
}

@keyframes pulse-secondary {
      0% {
            box-shadow: 0 0 0 0 rgba(32, 160, 170, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(32, 160, 170, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(32, 160, 170, 0);
      }
}

/* 模型区域指标改进 */
.metrics {
      display: flex;
      flex-direction: column;
      gap: 16px;
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      padding: 18px;
      border-radius: 12px;
      border: 1px solid rgba(44, 107, 237, 0.15);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
}

.metrics::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 70% 30%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.metrics:hover {
      border-color: rgba(44, 107, 237, 0.3);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-2px);
}

.metrics:hover::before {
      opacity: 1;
}

.metric-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 14px;
      padding: 12px 14px;
      border-radius: 8px;
      background: var(--card-item-bg);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      z-index: 1;
      box-shadow: var(--card-item-shadow);
      margin-bottom: 8px;
      border-left: 3px solid transparent;
}

.metric-item:last-child {
      margin-bottom: 0;
}

.metric-item:nth-child(1) {
      border-left-color: #81c784;
}

.metric-item:nth-child(2) {
      border-left-color: #64b5f6;
}

.metric-item:nth-child(3) {
      border-left-color: #ffb74d;
}

.metric-item:nth-child(4) {
      border-left-color: #ba68c8;
}

.metric-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 0;
      height: 100%;
      background: linear-gradient(90deg, rgba(44, 107, 237, 0.03), transparent);
      transition: width 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      z-index: -1;
      border-radius: 5px;
}

.metric-item:hover {
      background: var(--card-item-hover-bg);
      transform: translateX(3px);
      box-shadow: var(--card-item-hover-shadow);
}

.metric-item:hover::before {
      width: 100%;
}

.metric-value {
      font-weight: 600;
      color: #fff;
      padding: 5px 12px;
      border-radius: 12px;
      font-size: 13px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
}

.metric-item:nth-child(1) .metric-value {
      background: linear-gradient(135deg, #81c784, #a5d6a7);
}

.metric-item:nth-child(2) .metric-value {
      background: linear-gradient(135deg, #64b5f6, #90caf9);
}

.metric-item:nth-child(3) .metric-value {
      background: linear-gradient(135deg, #ffb74d, #ffcc80);
}

.metric-item:nth-child(4) .metric-value {
      background: linear-gradient(135deg, #ba68c8, #ce93d8);
}

@keyframes shimmer {
      0% {
            background-position: -200% 0;
      }

      100% {
            background-position: 200% 0;
      }
}

.metric-item:hover .metric-value {
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
      transform: scale(1.05);
}

/* 阈值设置区域美化 */
.threshold-settings {
      flex: 1;
}

.threshold-settings h3 {
      margin: 0 0 18px;
      font-size: 15px;
      color: var(--text-primary);
      font-weight: 600;
      display: flex;
      align-items: center;
      padding-left: 2px;
      position: relative;
      z-index: 1;
}

.threshold-settings h3::before {
      content: "";
      display: inline-block;
      width: 6px;
      height: 6px;
      background-color: var(--accent-color);
      border-radius: 50%;
      margin-right: 8px;
      box-shadow: 0 0 0 3px rgba(123, 93, 242, 0.15);
      animation: pulse-accent 2s infinite;
}

.threshold-item {
      margin-bottom: 24px;
      padding: 14px;
      border-radius: 10px;
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border: 1px solid rgba(44, 107, 237, 0.15);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
}

.threshold-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 30% 70%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.threshold-item:hover {
      border-color: rgba(44, 107, 237, 0.3);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-3px);
}

.threshold-item:hover::before {
      opacity: 1;
}

.threshold-item span {
      font-size: 14px;
      color: var(--text-secondary);
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      font-weight: 500;
      align-items: center;
      position: relative;
      z-index: 1;
}

.threshold-item span::after {
      content: attr(data-value);
      font-weight: 600;
      color: var(--primary-color);
      font-size: 13px;
      background: var(--badge-bg);
      padding: 3px 10px;
      border-radius: 12px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 1px 3px rgba(44, 107, 237, 0.05);
}

.threshold-item:hover span::after {
      background: var(--badge-hover-bg);
      transform: scale(1.05);
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.1);
}

/* 调整滑块相关样式 */
.threshold-item .ant-slider {
      margin: 16px 0 6px;
      position: relative;
      z-index: 1;
}

.threshold-item .ant-slider-rail {
      height: 6px;
      border-radius: 3px;
      background-color: rgba(133, 153, 179, 0.15);
      transition: background-color 0.3s ease;
}

.threshold-item .ant-slider-track {
      height: 6px;
      border-radius: 3px;
      background: linear-gradient(90deg, var(--primary-color) 0%, var(--secondary-color) 100%);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 1px 3px rgba(44, 107, 237, 0.2);
}

.threshold-item .ant-slider-handle {
      width: 18px;
      height: 18px;
      margin-top: -6px;
      border: 2px solid var(--primary-color);
      background-color: white;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: absolute;
      z-index: 5;
      cursor: grab;
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
}

.threshold-item .ant-slider-handle:active {
      cursor: grabbing;
      transform: scale(1.2);
      box-shadow: 0 0 0 5px rgba(44, 107, 237, 0.15);
}

.threshold-item:hover .ant-slider-rail {
      background-color: rgba(133, 153, 179, 0.2);
}

.threshold-item:hover .ant-slider-track {
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.3);
}

/* 相机模式美化 */
.camera-active {
      background-color: #000 !important;
      border-radius: 12px;
      overflow: hidden;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
      border: 1px solid rgba(255, 255, 255, 0.05);
}

.camera-active::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 2px;
      background: linear-gradient(90deg, var(--primary-color), var(--secondary-color), var(--accent-color));
      z-index: 100;
      animation: scan 2s linear infinite;
}

@keyframes scan {
      0% {
            top: 0;
      }

      50% {
            top: 100%;
      }

      100% {
            top: 0;
      }
}

.camera-active video {
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      display: block !important;
}



.system-info {
      flex: 1;
      color: var(--text-secondary);
      font-size: 13px;
      transition: var(--transition);
}

.database-status {
      color: var(--success-color);
      font-size: 13px;
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 4px 12px;
      background: rgba(8, 163, 123, 0.08);
      border-radius: 20px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
}

.database-status:hover {
      background: rgba(8, 163, 123, 0.12);
      transform: translateY(-1px);
      box-shadow: 0 2px 6px rgba(8, 163, 123, 0.1);
}

.database-status::before {
      content: "";
      display: inline-block;
      width: 8px;
      height: 8px;
      background-color: var(--success-color);
      border-radius: 50%;
      animation: pulse 1.5s infinite;
}

@keyframes pulse {
      0% {
            box-shadow: 0 0 0 0 rgba(8, 163, 123, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(8, 163, 123, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(8, 163, 123, 0);
      }
}

/* 加载动画 */
@keyframes spinner {
      to {
            transform: rotate(360deg);
      }
}

.loading-spinner {
      display: inline-block;
      width: 16px;
      height: 16px;
      border: 2px solid rgba(255, 255, 255, 0.3);
      border-top-color: white;
      border-radius: 50%;
      margin-left: 8px;
      animation: spinner 0.8s linear infinite;
}

/* 确保外框获得焦点时的样式美化 */
.image-wrapper:focus-within {
      outline: none;
      border-color: var(--primary-color);
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
}

/* 防止滚动问题 */
.no-scroll {
      overflow: hidden !important;
}

/* 美化边界框 */
.bounding-box {
      position: absolute;
      border: 2px solid;
      pointer-events: none;
      z-index: 100;
      transform-origin: top left;
      box-shadow: 0 0 12px rgba(0, 0, 0, 0.2);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: 2px;
}

.bounding-box:hover {
      box-shadow: 0 0 18px rgba(0, 0, 0, 0.3);
}

.bounding-box-label {
      position: absolute;
      top: -26px;
      left: 0;
      color: white;
      padding: 3px 10px;
      font-size: 12px;
      white-space: nowrap;
      border-radius: 4px 4px 0 0;
      font-weight: 500;
      box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
      background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      transform-origin: bottom left;
}

.bounding-box:hover .bounding-box-label {
      transform: translateY(-2px) scale(1.05);
      box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.2);
}

/* 响应式调整优化 */
@media screen and (max-width: 1440px) {
      .main-layout>div {
            flex-wrap: wrap;
      }

      .image-section {
            order: 0;
            width: calc(100% - 264px);
            min-width: auto;
      }

      .sidebar {
            order: 1;
            width: 240px;
            min-width: 240px;
            overflow: visible;
            /* Make sure the "操作面板" label is visible */
            padding-top: 24px;
            /* Increase top padding to accommodate the label */
      }

      .results-section {
            order: 2;
            width: 48%;
            min-width: auto;
      }

      .model-section {
            order: 3;
            width: 48%;
            min-width: auto;
      }

      /* 优化小尺寸屏幕过渡效果 */
      .image-section,
      .sidebar,
      .results-section,
      .model-section {
            transition: width 0.4s cubic-bezier(0.19, 1, 0.22, 1),
                  transform 0.4s cubic-bezier(0.19, 1, 0.22, 1),
                  box-shadow 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      }

      /* 确保操作面板标题在不同屏幕尺寸下可见 */
      .sidebar-actions::before {
            top: -14px;
            padding: 3px 18px;
            font-weight: 600;
            background: white;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
      }
}

@media screen and (max-width: 992px) {
      .image-section {
            width: 100%;
      }

      .sidebar,
      .results-section,
      .model-section {
            width: 100%;
      }

      /* 调整移动端视图的间距和布局 */
      .main-layout {
            padding: 16px;
      }

      .main-layout>div {
            gap: 16px;
      }

      .header {
            padding: 0 16px;
            height: 56px;
      }

      .logo {
            height: 30px;
      }

      .header-left h1 {
            font-size: 16px;
      }

      /* 移动端操作面板标题样式优化 */
      .sidebar-actions::before {
            top: -16px;
            padding: 4px 20px;
            font-size: 15px;
            background: white;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
      }
}

/* 添加一些全局动画效果 */
@keyframes floatUp {
      0% {
            transform: translateY(0);
      }

      50% {
            transform: translateY(-8px);
      }

      100% {
            transform: translateY(0);
      }
}

/* 优化表单控件样式 */
.ant-select,
.ant-input,
.ant-btn {
      border-radius: 8px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border-color: var(--border-color);
}

.ant-select:hover,
.ant-input:hover,
.ant-btn:hover {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 2px rgba(44, 107, 237, 0.08);
      transform: translateY(-1px);
}

.ant-select:focus,
.ant-input:focus {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
      transform: translateY(-1px);
}

/* 增强整体视觉层次感 */
.sidebar,
.image-section,
.results-section,
.model-section {
      z-index: 1;
}

.sidebar:hover,
.image-section:hover,
.results-section:hover,
.model-section:hover {
      z-index: 2;
}

.metric-value::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
      transform: translateX(-100%);
      animation: shimmer 2s infinite;
      opacity: 0;
      transition: opacity 0.3s;
}

/* 为所有卡片组件添加统一的提示标记 */
.defect-item::after,
.metric-item::after,
.threshold-item::after {
      content: "";
      position: absolute;
      top: 8px;
      right: 8px;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--primary-color);
      opacity: 0;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 0 0 0 rgba(44, 107, 237, 0);
}

.defect-item:hover::after,
.metric-item:hover::after,
.threshold-item:hover::after {
      opacity: 0.8;
      animation: pulse-dot 1.5s infinite;
}

@keyframes pulse-dot {
      0% {
            box-shadow: 0 0 0 0 rgba(44, 107, 237, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(44, 107, 237, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(44, 107, 237, 0);
      }
}

/* 美化InputNumber控件的加减按钮 */
.threshold-input .ant-input-number-handler-wrap {
      opacity: 1;
      border-left: 1px solid var(--border-color);
      background: linear-gradient(135deg, #f8fafd 0%, #ffffff 100%);
      border-radius: 0 6px 6px 0;
      transition: all 0.3s ease;
}

.threshold-input:hover .ant-input-number-handler-wrap {
      background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 100%);
      border-left: 1px solid rgba(44, 107, 237, 0.2);
}

.threshold-input .ant-input-number-handler {
      height: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
}

.threshold-input .ant-input-number-handler-up {
      border-bottom: 1px solid var(--border-color);
}

.threshold-input .ant-input-number-handler:hover {
      background-color: rgba(44, 107, 237, 0.08);
}

.threshold-input .ant-input-number-handler-up-inner,
.threshold-input .ant-input-number-handler-down-inner {
      color: var(--text-secondary);
      font-size: 12px;
      right: 6px;
      transform-origin: center;
      transition: all 0.2s ease;
}

.threshold-input .ant-input-number-handler:hover .ant-input-number-handler-up-inner,
.threshold-input .ant-input-number-handler:hover .ant-input-number-handler-down-inner {
      color: var(--primary-color);
      transform: scale(1.2);
}

.threshold-input .ant-input-number-focused {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 2px rgba(44, 107, 237, 0.2);
}

.threshold-input .ant-input-number-input {
      height: 32px;
      font-weight: 500;
      color: var(--text-primary);
      text-align: center;
}

/* 确保滑动条与输入框垂直对齐 */
.threshold-item .ant-slider {
      margin-top: 0;
      margin-bottom: 0;
      display: flex;
      align-items: center;
}

/* 自定义输入数字控件样式 */
.custom-input-number {
      position: relative;
      width: 80px;
      height: 32px;
      display: flex;
      align-items: center;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
      background: #f0f7ff;
      border-radius: 8px;
      overflow: hidden;
}

.custom-input-number .ant-input-number {
      border: none;
      box-shadow: none;
      background: transparent;
}

.custom-input-number .ant-input-number:hover,
.custom-input-number .ant-input-number:focus {
      box-shadow: none;
}

.custom-input-number .ant-input-number-input {
      text-align: center;
      font-weight: 500;
      padding-right: 24px;
      background: transparent;
}

.custom-controls {
      position: absolute;
      right: 0;
      top: 0;
      bottom: 0;
      width: 20px;
      display: flex;
      flex-direction: column;
      border-left: 1px solid rgba(24, 144, 255, 0.1);
      background: rgba(24, 144, 255, 0.1);
}

.control-up,
.control-down {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all 0.2s ease;
      color: rgba(0, 0, 0, 0.65);
}

.control-up {
      border-bottom: 1px solid rgba(24, 144, 255, 0.1);
}

.control-up:hover,
.control-down:hover {
      background: rgba(24, 144, 255, 0.2);
      color: #1890ff;
}

.control-up:active,
.control-down:active {
      background: rgba(24, 144, 255, 0.3);
      transform: scale(0.95);
}

.control-icon {
      font-size: 12px;
      line-height: 1;
      user-select: none;
}

/* 优化滑动条边距 */
.threshold-item .ant-slider {
      margin-top: 0;
      margin-bottom: 0;
      margin-left: 8px;
      display: flex;
      align-items: center;
}

/* 卡片容器基础样式 */
.card-container {
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border-radius: 12px;
      padding: 18px;
      border: var(--card-border);
      box-shadow: var(--card-shadow);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
}

.card-container::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 30% 30%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: -1;
      pointer-events: none;
}

.card-container:hover {
      border-color: rgba(44, 107, 237, 0.25);
      background: var(--card-item-hover-bg);
      box-shadow: 0 10px 25px rgba(44, 107, 237, 0.12);
      transform: translateY(-2px);
}

.card-container:hover::before {
      opacity: 1;
}

.system-status-section:hover::before {
      opacity: 1;
}

.sidebar-actions .start-detection-btn {
      height: 48px;
      font-size: 16px;
      background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%) !important;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      box-shadow: 0 6px 20px rgba(44, 107, 237, 0.35);
      color: white !important;
      letter-spacing: 0.8px;
      font-weight: 600;
      position: relative;
      z-index: 1;
      border-radius: var(--button-border-radius);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      overflow: hidden;
}

.sidebar-actions .start-detection-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 25px rgba(44, 107, 237, 0.5);
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--primary-color) 100%) !important;
}

.sidebar-actions .start-detection-btn:active {
      transform: translateY(1px);
      box-shadow: 0 4px 15px rgba(44, 107, 237, 0.4);
}

.sidebar-actions .action-btn {
      height: 44px;
      font-size: 15px;
      font-weight: 500;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      border-radius: var(--button-border-radius);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--border-color);
      color: var(--text-secondary);
      background: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(240, 245, 255, 0.9));
      position: relative;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
      letter-spacing: 0.5px;
      width: 100%;
      white-space: nowrap;
}

.sidebar-actions .action-btn::before {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg,
                  rgba(65, 120, 255, 0.2),
                  rgba(65, 120, 255, 0.1),
                  rgba(65, 120, 255, 0));
      transition: left 0.5s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: var(--button-border-radius);
}

.sidebar-actions .action-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(65, 120, 255, 0.2);
      border-color: rgba(65, 120, 255, 0.6);
      color: #4178ff;
      background: linear-gradient(to right, rgba(255, 255, 255, 0.95), rgba(240, 245, 255, 0.95));
}

.sidebar-actions .action-btn:active {
      transform: translateY(1px);
      box-shadow: 0 1px 4px rgba(65, 120, 255, 0.15);
}

.sidebar-actions .action-btn[disabled] {
      opacity: 0.7;
      cursor: not-allowed;
      background: rgba(240, 240, 240, 0.8);
      color: rgba(0, 0, 0, 0.25);
      border-color: #d9d9d9;
      box-shadow: none;
      transform: none !important;
}

.sidebar-actions .btn-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      transition: all 0.3s ease;
      margin-right: 8px;
      position: relative;
}

/* 添加按钮点击波纹效果 */
.sidebar-actions .action-btn::after,
.sidebar-actions .start-detection-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 5px;
      height: 5px;
      background: rgba(255, 255, 255, 0.5);
      opacity: 0;
      border-radius: 100%;
      transform: scale(1, 1) translate(-50%);
      transform-origin: 50% 50%;
}

.sidebar-actions .action-btn:active::after,
.sidebar-actions .start-detection-btn:active::after {
      animation: ripple 0.6s ease-out;
}

@keyframes ripple {
      0% {
            transform: scale(0, 0);
            opacity: 0.5;
      }

      100% {
            transform: scale(20, 20);
            opacity: 0;
      }
}

/* 开始检测按钮样式优化 */
.sidebar-actions .start-detection-btn.ant-btn {
      height: 48px;
      font-size: 16px;
      background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%) !important;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      box-shadow: 0 6px 20px rgba(44, 107, 237, 0.35);
      color: white !important;
      letter-spacing: 0.8px;
      font-weight: 600;
      position: relative;
      z-index: 1;
      border-radius: var(--button-border-radius);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      overflow: hidden;
      margin-bottom: 16px;
}

.sidebar-actions .start-detection-btn.ant-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 25px rgba(44, 107, 237, 0.5);
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--primary-color) 100%) !important;
}

.sidebar-actions .start-detection-btn.ant-btn:active {
      transform: translateY(1px);
      box-shadow: 0 4px 15px rgba(44, 107, 237, 0.4);
}

.sidebar-actions .start-detection-btn.ant-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 5px;
      height: 5px;
      background: rgba(255, 255, 255, 0.5);
      opacity: 0;
      border-radius: 100%;
      transform: scale(1, 1) translate(-50%);
      transform-origin: 50% 50%;
}

.sidebar-actions .start-detection-btn.ant-btn:active::after {
      animation: ripple 0.6s ease-out;
}

/* 确保开始检测按钮的图标样式正确 */
.sidebar-actions .start-detection-btn.ant-btn .anticon {
      font-size: 18px;
      margin-right: 8px;
}

/* 坐标信息样式 */
.coordinates-info {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      line-height: 1.8;
      display: flex;
      flex-direction: column;
      gap: 4px;
}

.coord-row {
      display: flex;
      align-items: center;
      white-space: nowrap;
}

.coord-label {
      width: 45px;
}

.coord-spacer {
      width: 45px;
      display: inline-block;
}

.coord-pair {
      margin-right: 20px;
      font-variant-numeric: tabular-nums;
}

.coord-pair:last-child {
      margin-right: 0;
}

/* 信息行通用样式 */
.info-row {
      display: flex;
      align-items: center;
      margin: 0;
      line-height: 1.8;
}

.info-label {
      width: 60px;
      /* 统一标签宽度 */
      flex-shrink: 0;
      color: var(--text-secondary);
}

.info-value {
      color: var(--text-primary);
}

/* 坐标信息样式 */
.coordinates-info {
      display: flex;
      flex-direction: column;
      gap: 4px;
}

.coord-row {
      display: flex;
      align-items: center;
      white-space: nowrap;
}

.coord-pair {
      margin-right: 20px;
      font-variant-numeric: tabular-nums;
}

.coord-pair:last-child {
      margin-right: 0;
}

/* 只添加标签宽度样式 */
.label-width {
      display: inline-block;
      width: 60px;
}

/* 标签宽度样式 */
.label-width {
      display: inline-block;
      width: 60px;
      text-align: left;
      margin-left: -10px;
      /* 向左偏移，使标签对齐 */
}

.defect-info h4,
.defect-info p {
      margin: 0;
      padding: 8px 12px;
      border-radius: 6px;
      background: rgba(247, 249, 252, 0.7);
      border: 1px solid rgba(44, 107, 237, 0.08);
      transition: all 0.3s ease;
      min-height: 36px;
      display: flex;
      align-items: center;
      width: 100%;
      box-sizing: border-box;
      font-size: 14px;
      font-weight: normal;
      color: var(--text-primary);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      line-height: 1.5;
      position: relative;
      padding-left: 20px;
      /* 调整左内边距，让标签有足够空间 */
}

.defect-info h4::before {
      content: counter(defect-counter);
      position: absolute;
      left: -24px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, rgba(44, 107, 237, 0.7), rgba(123, 93, 242, 0.7));
      /* 降低背景色的不透明度 */
      color: rgba(255, 255, 255, 0.95);
      /* 稍微降低文字的不透明度 */
      font-size: 12px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity 0.3s ease;
      z-index: 2;
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.15);
      /* 添加柔和的阴影 */
      backdrop-filter: blur(2px);
      /* 添加轻微的模糊效果 */
      -webkit-backdrop-filter: blur(2px);
}

.defect-info p {
      margin: 0;
      padding: 10px 15px;
      border-radius: 8px;
      background: rgba(247, 249, 252, 0.7);
      border: 1px solid rgba(44, 107, 237, 0.08);
      transition: all 0.3s ease;
      font-size: 14px;
      color: var(--text-secondary);
      display: flex;
      align-items: center;
      position: relative;
}

.defect-info p::before {
      display: none;
      /* 移除小圆点 */
}

.defect-item:hover .defect-info h4 {
      transform: translateX(5px);
      color: var(--primary-color);
}

.defect-item:hover .defect-info h4::before {
      opacity: 1;
      box-shadow: 0 3px 8px rgba(44, 107, 237, 0.2);
      /* 悬停时稍微增强阴影 */
}

.defect-item:hover .defect-info p {
      background: rgba(247, 249, 252, 0.9);
      border-color: rgba(44, 107, 237, 0.15);
      transform: translateX(8px);
      box-shadow: 0 2px 8px rgba(44, 107, 237, 0.08);
}

.defect-item:hover .defect-info p::before {
      display: none;
      /* 确保悬停时也不显示小圆点 */
}

/* 为坐标和置信度添加特殊样式 */
.defect-info p:nth-of-type(1) {
      background: rgba(44, 107, 237, 0.04);
      border-color: rgba(44, 107, 237, 0.1);
}

.defect-info p:nth-of-type(2) {
      background: rgba(123, 93, 242, 0.04);
      border-color: rgba(123, 93, 242, 0.1);
}

.defect-item:hover .defect-info p:nth-of-type(1) {
      background: rgba(44, 107, 237, 0.06);
      border-color: rgba(44, 107, 237, 0.15);
}

.defect-item:hover .defect-info p:nth-of-type(2) {
      background: rgba(123, 93, 242, 0.06);
      border-color: rgba(123, 93, 242, 0.15);
}

/* 添加渐进式动画延迟 */
.defect-item:hover .defect-info p:nth-of-type(1) {
      transition-delay: 0.05s;
}

.defect-item:hover .defect-info p:nth-of-type(2) {
      transition-delay: 0.1s;
}

/* 美化滚动条 */
.defects-container::-webkit-scrollbar {
      width: 6px;
}

.defects-container::-webkit-scrollbar-track {
      background: rgba(247, 249, 252, 0.8);
      border-radius: 3px;
}

.defects-container::-webkit-scrollbar-thumb {
      background: rgba(44, 107, 237, 0.2);
      border-radius: 3px;
      transition: all 0.3s ease;
}

.defects-container::-webkit-scrollbar-thumb:hover {
      background: rgba(44, 107, 237, 0.3);
}

/* 空状态样式优化 */
.defect-item.empty-defect {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.8), rgba(247, 249, 252, 0.8));
      border: 1px dashed rgba(44, 107, 237, 0.2);
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      min-height: 120px;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      padding: 24px;
}

.defect-item.empty-defect::before {
      display: none;
      /* 移除左侧的渐变条 */
}

.defect-item.empty-defect .defect-info {
      padding: 0;
      /* 重置内边距 */
      align-items: center;
      /* 居中对齐 */
}

.defect-item.empty-defect .defect-info h4 {
      color: var(--text-secondary);
      margin-bottom: 8px;
      padding: 0;
      /* 移除左侧内边距 */
      font-size: 16px;
      font-weight: 500;
      background: none;
      /* 移除背景 */
      border: none;
      /* 移除边框 */
      box-shadow: none;
      /* 移除阴影 */
}

.defect-item.empty-defect .defect-info h4::before {
      display: none;
      /* 移除序号 */
}

.defect-item.empty-defect .defect-info p {
      color: var(--text-light);
      font-style: italic;
      background: none;
      border: none;
      padding: 0;
      font-size: 14px;
      box-shadow: none;
      margin-top: 4px;
}

.defect-item.empty-defect:hover {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(247, 249, 252, 0.9));
      border-color: var(--primary-color);
      transform: scale(1.02);
      box-shadow: 0 8px 24px rgba(44, 107, 237, 0.12);
}

.defect-item.empty-defect:hover .defect-info h4,
.defect-item.empty-defect:hover .defect-info p {
      transform: none;
      /* 移除悬停时的位移效果 */
      background: none;
      border: none;
      box-shadow: none;
}

.defect-item.empty-defect:hover .defect-info p::before {
      display: none;
      /* 移除悬停时的小圆点 */
}

/* 添加检测结果项的序号标记 */
.defect-item {
      counter-increment: defect-counter;
}

.defect-info h4::before {
      content: counter(defect-counter);
      position: absolute;
      left: -30px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
      color: white;
      font-size: 12px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity 0.3s ease;
}

.defect-item:hover .defect-info h4::before {
      opacity: 1;
}

/* 添加检测结果的标签样式 */
.defect-tag {
      display: inline-block;
      padding: 4px 12px;
      border-radius: 12px;
      font-size: 12px;
      font-weight: 500;
      margin-bottom: 8px;
      background: rgba(44, 107, 237, 0.1);
      color: var(--primary-color);
      transition: all 0.3s ease;
}

.defect-item:hover .defect-tag {
      background: rgba(44, 107, 237, 0.15);
      transform: translateX(4px);
}

/* 模型区域美化 */
.model-section {
      width: 280px;
      min-width: 280px;
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      border-radius: var(--border-radius);
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 20px;
      box-shadow: var(--glass-shadow);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--glass-border);
      position: relative;
      overflow: hidden;
}

.model-section::before {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: radial-gradient(circle, rgba(32, 160, 170, 0.03) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.model-section:hover {
      box-shadow: 0 15px 35px rgba(32, 160, 170, 0.12);
      transform: translateY(-3px);
}

.model-section:hover::before {
      opacity: 1;
}

.model-header {
      margin-bottom: 16px;
}

.model-header h2 {
      margin: 0 0 16px;
      font-size: 16px;
      color: var(--text-primary);
      font-weight: 600;
      display: flex;
      align-items: center;
      position: relative;
      z-index: 1;
}

.model-header h2::before {
      content: "";
      display: inline-block;
      width: 6px;
      height: 6px;
      background-color: var(--secondary-color);
      border-radius: 50%;
      margin-right: 8px;
      box-shadow: 0 0 0 3px rgba(32, 160, 170, 0.15);
      animation: pulse-secondary 2s infinite;
}

@keyframes pulse-secondary {
      0% {
            box-shadow: 0 0 0 0 rgba(32, 160, 170, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(32, 160, 170, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(32, 160, 170, 0);
      }
}

/* 模型区域指标改进 */
.metrics {
      display: flex;
      flex-direction: column;
      gap: 16px;
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      padding: 18px;
      border-radius: 12px;
      border: 1px solid rgba(44, 107, 237, 0.15);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
}

.metrics::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 70% 30%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.metrics:hover {
      border-color: rgba(44, 107, 237, 0.3);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-2px);
}

.metrics:hover::before {
      opacity: 1;
}

.metric-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 14px;
      padding: 12px 14px;
      border-radius: 8px;
      background: var(--card-item-bg);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      z-index: 1;
      box-shadow: var(--card-item-shadow);
      margin-bottom: 8px;
      border-left: 3px solid transparent;
}

.metric-item:last-child {
      margin-bottom: 0;
}

.metric-item:nth-child(1) {
      border-left-color: #81c784;
}

.metric-item:nth-child(2) {
      border-left-color: #64b5f6;
}

.metric-item:nth-child(3) {
      border-left-color: #ffb74d;
}

.metric-item:nth-child(4) {
      border-left-color: #ba68c8;
}

.metric-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 0;
      height: 100%;
      background: linear-gradient(90deg, rgba(44, 107, 237, 0.03), transparent);
      transition: width 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      z-index: -1;
      border-radius: 5px;
}

.metric-item:hover {
      background: var(--card-item-hover-bg);
      transform: translateX(3px);
      box-shadow: var(--card-item-hover-shadow);
}

.metric-item:hover::before {
      width: 100%;
}

.metric-value {
      font-weight: 600;
      color: #fff;
      padding: 5px 12px;
      border-radius: 12px;
      font-size: 13px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
}

.metric-item:nth-child(1) .metric-value {
      background: linear-gradient(135deg, #81c784, #a5d6a7);
}

.metric-item:nth-child(2) .metric-value {
      background: linear-gradient(135deg, #64b5f6, #90caf9);
}

.metric-item:nth-child(3) .metric-value {
      background: linear-gradient(135deg, #ffb74d, #ffcc80);
}

.metric-item:nth-child(4) .metric-value {
      background: linear-gradient(135deg, #ba68c8, #ce93d8);
}

@keyframes shimmer {
      0% {
            background-position: -200% 0;
      }

      100% {
            background-position: 200% 0;
      }
}

.metric-item:hover .metric-value {
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
      transform: scale(1.05);
}

/* 阈值设置区域美化 */
.threshold-settings {
      flex: 1;
}

.threshold-settings h3 {
      margin: 0 0 18px;
      font-size: 15px;
      color: var(--text-primary);
      font-weight: 600;
      display: flex;
      align-items: center;
      padding-left: 2px;
      position: relative;
      z-index: 1;
}

.threshold-settings h3::before {
      content: "";
      display: inline-block;
      width: 6px;
      height: 6px;
      background-color: var(--accent-color);
      border-radius: 50%;
      margin-right: 8px;
      box-shadow: 0 0 0 3px rgba(123, 93, 242, 0.15);
      animation: pulse-accent 2s infinite;
}

.threshold-item {
      margin-bottom: 24px;
      padding: 14px;
      border-radius: 10px;
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border: 1px solid rgba(44, 107, 237, 0.15);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
}

.threshold-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 30% 70%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.threshold-item:hover {
      border-color: rgba(44, 107, 237, 0.3);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-3px);
}

.threshold-item:hover::before {
      opacity: 1;
}

.threshold-item span {
      font-size: 14px;
      color: var(--text-secondary);
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      font-weight: 500;
      align-items: center;
      position: relative;
      z-index: 1;
}

.threshold-item span::after {
      content: attr(data-value);
      font-weight: 600;
      color: var(--primary-color);
      font-size: 13px;
      background: var(--badge-bg);
      padding: 3px 10px;
      border-radius: 12px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 1px 3px rgba(44, 107, 237, 0.05);
}

.threshold-item:hover span::after {
      background: var(--badge-hover-bg);
      transform: scale(1.05);
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.1);
}

/* 调整滑块相关样式 */
.threshold-item .ant-slider {
      margin: 16px 0 6px;
      position: relative;
      z-index: 1;
}

.threshold-item .ant-slider-rail {
      height: 6px;
      border-radius: 3px;
      background-color: rgba(133, 153, 179, 0.15);
      transition: background-color 0.3s ease;
}

.threshold-item .ant-slider-track {
      height: 6px;
      border-radius: 3px;
      background: linear-gradient(90deg, var(--primary-color) 0%, var(--secondary-color) 100%);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 1px 3px rgba(44, 107, 237, 0.2);
}

.threshold-item .ant-slider-handle {
      width: 18px;
      height: 18px;
      margin-top: -6px;
      border: 2px solid var(--primary-color);
      background-color: white;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: absolute;
      z-index: 5;
      cursor: grab;
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
}

.threshold-item .ant-slider-handle:active {
      cursor: grabbing;
      transform: scale(1.2);
      box-shadow: 0 0 0 5px rgba(44, 107, 237, 0.15);
}

.threshold-item:hover .ant-slider-rail {
      background-color: rgba(133, 153, 179, 0.2);
}

.threshold-item:hover .ant-slider-track {
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.3);
}

/* 相机模式美化 */
.camera-active {
      background-color: #000 !important;
      border-radius: 12px;
      overflow: hidden;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
      border: 1px solid rgba(255, 255, 255, 0.05);
}

.camera-active::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 2px;
      background: linear-gradient(90deg, var(--primary-color), var(--secondary-color), var(--accent-color));
      z-index: 100;
      animation: scan 2s linear infinite;
}

@keyframes scan {
      0% {
            top: 0;
      }

      50% {
            top: 100%;
      }

      100% {
            top: 0;
      }
}

.camera-active video {
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      display: block !important;
}



.system-info {
      flex: 1;
      color: var(--text-secondary);
      font-size: 13px;
      transition: var(--transition);
}

.database-status {
      color: var(--success-color);
      font-size: 13px;
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 4px 12px;
      background: rgba(8, 163, 123, 0.08);
      border-radius: 20px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
}

.database-status:hover {
      background: rgba(8, 163, 123, 0.12);
      transform: translateY(-1px);
      box-shadow: 0 2px 6px rgba(8, 163, 123, 0.1);
}

.database-status::before {
      content: "";
      display: inline-block;
      width: 8px;
      height: 8px;
      background-color: var(--success-color);
      border-radius: 50%;
      animation: pulse 1.5s infinite;
}

@keyframes pulse {
      0% {
            box-shadow: 0 0 0 0 rgba(8, 163, 123, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(8, 163, 123, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(8, 163, 123, 0);
      }
}

/* 加载动画 */
@keyframes spinner {
      to {
            transform: rotate(360deg);
      }
}

.loading-spinner {
      display: inline-block;
      width: 16px;
      height: 16px;
      border: 2px solid rgba(255, 255, 255, 0.3);
      border-top-color: white;
      border-radius: 50%;
      margin-left: 8px;
      animation: spinner 0.8s linear infinite;
}

/* 确保外框获得焦点时的样式美化 */
.image-wrapper:focus-within {
      outline: none;
      border-color: var(--primary-color);
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
}

/* 防止滚动问题 */
.no-scroll {
      overflow: hidden !important;
}

/* 美化边界框 */
.bounding-box {
      position: absolute;
      border: 2px solid;
      pointer-events: none;
      z-index: 100;
      transform-origin: top left;
      box-shadow: 0 0 12px rgba(0, 0, 0, 0.2);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: 2px;
}

.bounding-box:hover {
      box-shadow: 0 0 18px rgba(0, 0, 0, 0.3);
}

.bounding-box-label {
      position: absolute;
      top: -26px;
      left: 0;
      color: white;
      padding: 3px 10px;
      font-size: 12px;
      white-space: nowrap;
      border-radius: 4px 4px 0 0;
      font-weight: 500;
      box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
      background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      transform-origin: bottom left;
}

.bounding-box:hover .bounding-box-label {
      transform: translateY(-2px) scale(1.05);
      box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.2);
}

/* 响应式调整优化 */
@media screen and (max-width: 1440px) {
      .main-layout>div {
            flex-wrap: wrap;
      }

      .image-section {
            order: 0;
            width: calc(100% - 264px);
            min-width: auto;
      }

      .sidebar {
            order: 1;
            width: 240px;
            min-width: 240px;
            overflow: visible;
            /* Make sure the "操作面板" label is visible */
            padding-top: 24px;
            /* Increase top padding to accommodate the label */
      }

      .results-section {
            order: 2;
            width: 48%;
            min-width: auto;
      }

      .model-section {
            order: 3;
            width: 48%;
            min-width: auto;
      }

      /* 优化小尺寸屏幕过渡效果 */
      .image-section,
      .sidebar,
      .results-section,
      .model-section {
            transition: width 0.4s cubic-bezier(0.19, 1, 0.22, 1),
                  transform 0.4s cubic-bezier(0.19, 1, 0.22, 1),
                  box-shadow 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      }

      /* 确保操作面板标题在不同屏幕尺寸下可见 */
      .sidebar-actions::before {
            top: -14px;
            padding: 3px 18px;
            font-weight: 600;
            background: white;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
      }
}

@media screen and (max-width: 992px) {
      .image-section {
            width: 100%;
      }

      .sidebar,
      .results-section,
      .model-section {
            width: 100%;
      }

      /* 调整移动端视图的间距和布局 */
      .main-layout {
            padding: 16px;
      }

      .main-layout>div {
            gap: 16px;
      }

      .header {
            padding: 0 16px;
            height: 56px;
      }

      .logo {
            height: 30px;
      }

      .header-left h1 {
            font-size: 16px;
      }

      /* 移动端操作面板标题样式优化 */
      .sidebar-actions::before {
            top: -16px;
            padding: 4px 20px;
            font-size: 15px;
            background: white;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
      }
}

/* 添加一些全局动画效果 */
@keyframes floatUp {
      0% {
            transform: translateY(0);
      }

      50% {
            transform: translateY(-8px);
      }

      100% {
            transform: translateY(0);
      }
}

/* 优化表单控件样式 */
.ant-select,
.ant-input,
.ant-btn {
      border-radius: 8px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border-color: var(--border-color);
}

.ant-select:hover,
.ant-input:hover,
.ant-btn:hover {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 2px rgba(44, 107, 237, 0.08);
      transform: translateY(-1px);
}

.ant-select:focus,
.ant-input:focus {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
      transform: translateY(-1px);
}

/* 增强整体视觉层次感 */
.sidebar,
.image-section,
.results-section,
.model-section {
      z-index: 1;
}

.sidebar:hover,
.image-section:hover,
.results-section:hover,
.model-section:hover {
      z-index: 2;
}

.metric-value::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
      transform: translateX(-100%);
      animation: shimmer 2s infinite;
      opacity: 0;
      transition: opacity 0.3s;
}

/* 为所有卡片组件添加统一的提示标记 */
.defect-item::after,
.metric-item::after,
.threshold-item::after {
      content: "";
      position: absolute;
      top: 8px;
      right: 8px;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--primary-color);
      opacity: 0;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 0 0 0 rgba(44, 107, 237, 0);
}

.defect-item:hover::after,
.metric-item:hover::after,
.threshold-item:hover::after {
      opacity: 0.8;
      animation: pulse-dot 1.5s infinite;
}

@keyframes pulse-dot {
      0% {
            box-shadow: 0 0 0 0 rgba(44, 107, 237, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(44, 107, 237, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(44, 107, 237, 0);
      }
}

/* 美化InputNumber控件的加减按钮 */
.threshold-input .ant-input-number-handler-wrap {
      opacity: 1;
      border-left: 1px solid var(--border-color);
      background: linear-gradient(135deg, #f8fafd 0%, #ffffff 100%);
      border-radius: 0 6px 6px 0;
      transition: all 0.3s ease;
}

.threshold-input:hover .ant-input-number-handler-wrap {
      background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 100%);
      border-left: 1px solid rgba(44, 107, 237, 0.2);
}

.threshold-input .ant-input-number-handler {
      height: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
}

.threshold-input .ant-input-number-handler-up {
      border-bottom: 1px solid var(--border-color);
}

.threshold-input .ant-input-number-handler:hover {
      background-color: rgba(44, 107, 237, 0.08);
}

.threshold-input .ant-input-number-handler-up-inner,
.threshold-input .ant-input-number-handler-down-inner {
      color: var(--text-secondary);
      font-size: 12px;
      right: 6px;
      transform-origin: center;
      transition: all 0.2s ease;
}

.threshold-input .ant-input-number-handler:hover .ant-input-number-handler-up-inner,
.threshold-input .ant-input-number-handler:hover .ant-input-number-handler-down-inner {
      color: var(--primary-color);
      transform: scale(1.2);
}

.threshold-input .ant-input-number-focused {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 2px rgba(44, 107, 237, 0.2);
}

.threshold-input .ant-input-number-input {
      height: 32px;
      font-weight: 500;
      color: var(--text-primary);
      text-align: center;
}

/* 确保滑动条与输入框垂直对齐 */
.threshold-item .ant-slider {
      margin-top: 0;
      margin-bottom: 0;
      display: flex;
      align-items: center;
}

/* 自定义输入数字控件样式 */
.custom-input-number {
      position: relative;
      width: 80px;
      height: 32px;
      display: flex;
      align-items: center;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
      background: #f0f7ff;
      border-radius: 8px;
      overflow: hidden;
}

.custom-input-number .ant-input-number {
      border: none;
      box-shadow: none;
      background: transparent;
}

.custom-input-number .ant-input-number:hover,
.custom-input-number .ant-input-number:focus {
      box-shadow: none;
}

.custom-input-number .ant-input-number-input {
      text-align: center;
      font-weight: 500;
      padding-right: 24px;
      background: transparent;
}

.custom-controls {
      position: absolute;
      right: 0;
      top: 0;
      bottom: 0;
      width: 20px;
      display: flex;
      flex-direction: column;
      border-left: 1px solid rgba(24, 144, 255, 0.1);
      background: rgba(24, 144, 255, 0.1);
}

.control-up,
.control-down {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all 0.2s ease;
      color: rgba(0, 0, 0, 0.65);
}

.control-up {
      border-bottom: 1px solid rgba(24, 144, 255, 0.1);
}

.control-up:hover,
.control-down:hover {
      background: rgba(24, 144, 255, 0.2);
      color: #1890ff;
}

.control-up:active,
.control-down:active {
      background: rgba(24, 144, 255, 0.3);
      transform: scale(0.95);
}

.control-icon {
      font-size: 12px;
      line-height: 1;
      user-select: none;
}

/* 优化滑动条边距 */
.threshold-item .ant-slider {
      margin-top: 0;
      margin-bottom: 0;
      margin-left: 8px;
      display: flex;
      align-items: center;
}

/* 卡片容器基础样式 */
.card-container {
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border-radius: 12px;
      padding: 18px;
      border: var(--card-border);
      box-shadow: var(--card-shadow);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
}

.card-container::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 30% 30%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: -1;
      pointer-events: none;
}

.card-container:hover {
      border-color: rgba(44, 107, 237, 0.25);
      background: var(--card-item-hover-bg);
      box-shadow: 0 10px 25px rgba(44, 107, 237, 0.12);
      transform: translateY(-2px);
}

.card-container:hover::before {
      opacity: 1;
}

.system-status-section:hover::before {
      opacity: 1;
}

.sidebar-actions .start-detection-btn {
      height: 48px;
      font-size: 16px;
      background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%) !important;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      box-shadow: 0 6px 20px rgba(44, 107, 237, 0.35);
      color: white !important;
      letter-spacing: 0.8px;
      font-weight: 600;
      position: relative;
      z-index: 1;
      border-radius: var(--button-border-radius);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      overflow: hidden;
}

.sidebar-actions .start-detection-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 25px rgba(44, 107, 237, 0.5);
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--primary-color) 100%) !important;
}

.sidebar-actions .start-detection-btn:active {
      transform: translateY(1px);
      box-shadow: 0 4px 15px rgba(44, 107, 237, 0.4);
}

.sidebar-actions .action-btn {
      height: 44px;
      font-size: 15px;
      font-weight: 500;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      border-radius: var(--button-border-radius);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--border-color);
      color: var(--text-secondary);
      background: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(240, 245, 255, 0.9));
      position: relative;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
      letter-spacing: 0.5px;
      width: 100%;
      white-space: nowrap;
}

.sidebar-actions .action-btn::before {
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: linear-gradient(90deg,
                  rgba(65, 120, 255, 0.2),
                  rgba(65, 120, 255, 0.1),
                  rgba(65, 120, 255, 0));
      transition: left 0.5s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: var(--button-border-radius);
}

.sidebar-actions .action-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(65, 120, 255, 0.2);
      border-color: rgba(65, 120, 255, 0.6);
      color: #4178ff;
      background: linear-gradient(to right, rgba(255, 255, 255, 0.95), rgba(240, 245, 255, 0.95));
}

.sidebar-actions .action-btn:active {
      transform: translateY(1px);
      box-shadow: 0 1px 4px rgba(65, 120, 255, 0.15);
}

.sidebar-actions .action-btn[disabled] {
      opacity: 0.7;
      cursor: not-allowed;
      background: rgba(240, 240, 240, 0.8);
      color: rgba(0, 0, 0, 0.25);
      border-color: #d9d9d9;
      box-shadow: none;
      transform: none !important;
}

.sidebar-actions .btn-icon {
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      transition: all 0.3s ease;
      margin-right: 8px;
      position: relative;
}

/* 添加按钮点击波纹效果 */
.sidebar-actions .action-btn::after,
.sidebar-actions .start-detection-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 5px;
      height: 5px;
      background: rgba(255, 255, 255, 0.5);
      opacity: 0;
      border-radius: 100%;
      transform: scale(1, 1) translate(-50%);
      transform-origin: 50% 50%;
}

.sidebar-actions .action-btn:active::after,
.sidebar-actions .start-detection-btn:active::after {
      animation: ripple 0.6s ease-out;
}

@keyframes ripple {
      0% {
            transform: scale(0, 0);
            opacity: 0.5;
      }

      100% {
            transform: scale(20, 20);
            opacity: 0;
      }
}

/* 开始检测按钮样式优化 */
.sidebar-actions .start-detection-btn.ant-btn {
      height: 48px;
      font-size: 16px;
      background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%) !important;
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      box-shadow: 0 6px 20px rgba(44, 107, 237, 0.35);
      color: white !important;
      letter-spacing: 0.8px;
      font-weight: 600;
      position: relative;
      z-index: 1;
      border-radius: var(--button-border-radius);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      overflow: hidden;
      margin-bottom: 16px;
}

.sidebar-actions .start-detection-btn.ant-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 25px rgba(44, 107, 237, 0.5);
      background: linear-gradient(135deg, var(--accent-color) 0%, var(--primary-color) 100%) !important;
}

.sidebar-actions .start-detection-btn.ant-btn:active {
      transform: translateY(1px);
      box-shadow: 0 4px 15px rgba(44, 107, 237, 0.4);
}

.sidebar-actions .start-detection-btn.ant-btn::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 5px;
      height: 5px;
      background: rgba(255, 255, 255, 0.5);
      opacity: 0;
      border-radius: 100%;
      transform: scale(1, 1) translate(-50%);
      transform-origin: 50% 50%;
}

.sidebar-actions .start-detection-btn.ant-btn:active::after {
      animation: ripple 0.6s ease-out;
}

/* 确保开始检测按钮的图标样式正确 */
.sidebar-actions .start-detection-btn.ant-btn .anticon {
      font-size: 18px;
      margin-right: 8px;
}

/* 坐标信息样式 */
.coordinates-info {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      line-height: 1.8;
      display: flex;
      flex-direction: column;
      gap: 4px;
}

.coord-row {
      display: flex;
      align-items: center;
      white-space: nowrap;
}

.coord-label {
      width: 45px;
}

.coord-spacer {
      width: 45px;
      display: inline-block;
}

.coord-pair {
      margin-right: 20px;
      font-variant-numeric: tabular-nums;
}

.coord-pair:last-child {
      margin-right: 0;
}

/* 信息行通用样式 */
.info-row {
      display: flex;
      align-items: center;
      margin: 0;
      line-height: 1.8;
}

.info-label {
      width: 60px;
      /* 统一标签宽度 */
      flex-shrink: 0;
      color: var(--text-secondary);
}

.info-value {
      color: var(--text-primary);
}

/* 坐标信息样式 */
.coordinates-info {
      display: flex;
      flex-direction: column;
      gap: 4px;
}

.coord-row {
      display: flex;
      align-items: center;
      white-space: nowrap;
}

.coord-pair {
      margin-right: 20px;
      font-variant-numeric: tabular-nums;
}

.coord-pair:last-child {
      margin-right: 0;
}

/* 只添加标签宽度样式 */
.label-width {
      display: inline-block;
      width: 60px;
}

/* 标签宽度样式 */
.label-width {
      display: inline-block;
      width: 60px;
      text-align: left;
      margin-left: -10px;
      /* 向左偏移，使标签对齐 */
}

.defect-info h4,
.defect-info p {
      margin: 0;
      padding: 8px 12px;
      border-radius: 6px;
      background: rgba(247, 249, 252, 0.7);
      border: 1px solid rgba(44, 107, 237, 0.08);
      transition: all 0.3s ease;
      min-height: 36px;
      display: flex;
      align-items: center;
      width: 100%;
      box-sizing: border-box;
      font-size: 14px;
      font-weight: normal;
      color: var(--text-primary);
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      line-height: 1.5;
      position: relative;
      padding-left: 20px;
      /* 调整左内边距，让标签有足够空间 */
}

.defect-info h4::before {
      content: counter(defect-counter);
      position: absolute;
      left: -24px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, rgba(44, 107, 237, 0.7), rgba(123, 93, 242, 0.7));
      /* 降低背景色的不透明度 */
      color: rgba(255, 255, 255, 0.95);
      /* 稍微降低文字的不透明度 */
      font-size: 12px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity 0.3s ease;
      z-index: 2;
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.15);
      /* 添加柔和的阴影 */
      backdrop-filter: blur(2px);
      /* 添加轻微的模糊效果 */
      -webkit-backdrop-filter: blur(2px);
}

.defect-info p {
      margin: 0;
      padding: 10px 15px;
      border-radius: 8px;
      background: rgba(247, 249, 252, 0.7);
      border: 1px solid rgba(44, 107, 237, 0.08);
      transition: all 0.3s ease;
      font-size: 14px;
      color: var(--text-secondary);
      display: flex;
      align-items: center;
      position: relative;
}

.defect-info p::before {
      display: none;
      /* 移除小圆点 */
}

.defect-item:hover .defect-info h4 {
      transform: translateX(5px);
      color: var(--primary-color);
}

.defect-item:hover .defect-info h4::before {
      opacity: 1;
      box-shadow: 0 3px 8px rgba(44, 107, 237, 0.2);
      /* 悬停时稍微增强阴影 */
}

.defect-item:hover .defect-info p {
      background: rgba(247, 249, 252, 0.9);
      border-color: rgba(44, 107, 237, 0.15);
      transform: translateX(8px);
      box-shadow: 0 2px 8px rgba(44, 107, 237, 0.08);
}

.defect-item:hover .defect-info p::before {
      display: none;
      /* 确保悬停时也不显示小圆点 */
}

/* 为坐标和置信度添加特殊样式 */
.defect-info p:nth-of-type(1) {
      background: rgba(44, 107, 237, 0.04);
      border-color: rgba(44, 107, 237, 0.1);
}

.defect-info p:nth-of-type(2) {
      background: rgba(123, 93, 242, 0.04);
      border-color: rgba(123, 93, 242, 0.1);
}

.defect-item:hover .defect-info p:nth-of-type(1) {
      background: rgba(44, 107, 237, 0.06);
      border-color: rgba(44, 107, 237, 0.15);
}

.defect-item:hover .defect-info p:nth-of-type(2) {
      background: rgba(123, 93, 242, 0.06);
      border-color: rgba(123, 93, 242, 0.15);
}

/* 添加渐进式动画延迟 */
.defect-item:hover .defect-info p:nth-of-type(1) {
      transition-delay: 0.05s;
}

.defect-item:hover .defect-info p:nth-of-type(2) {
      transition-delay: 0.1s;
}

/* 美化滚动条 */
.defects-container::-webkit-scrollbar {
      width: 6px;
}

.defects-container::-webkit-scrollbar-track {
      background: rgba(247, 249, 252, 0.8);
      border-radius: 3px;
}

.defects-container::-webkit-scrollbar-thumb {
      background: rgba(44, 107, 237, 0.2);
      border-radius: 3px;
      transition: all 0.3s ease;
}

.defects-container::-webkit-scrollbar-thumb:hover {
      background: rgba(44, 107, 237, 0.3);
}

/* 空状态样式优化 */
.defect-item.empty-defect {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.8), rgba(247, 249, 252, 0.8));
      border: 1px dashed rgba(44, 107, 237, 0.2);
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      min-height: 120px;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      padding: 24px;
}

.defect-item.empty-defect::before {
      display: none;
      /* 移除左侧的渐变条 */
}

.defect-item.empty-defect .defect-info {
      padding: 0;
      /* 重置内边距 */
      align-items: center;
      /* 居中对齐 */
}

.defect-item.empty-defect .defect-info h4 {
      color: var(--text-secondary);
      margin-bottom: 8px;
      padding: 0;
      /* 移除左侧内边距 */
      font-size: 16px;
      font-weight: 500;
      background: none;
      /* 移除背景 */
      border: none;
      /* 移除边框 */
      box-shadow: none;
      /* 移除阴影 */
}

.defect-item.empty-defect .defect-info h4::before {
      display: none;
      /* 移除序号 */
}

.defect-item.empty-defect .defect-info p {
      color: var(--text-light);
      font-style: italic;
      background: none;
      border: none;
      padding: 0;
      font-size: 14px;
      box-shadow: none;
      margin-top: 4px;
}

.defect-item.empty-defect:hover {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(247, 249, 252, 0.9));
      border-color: var(--primary-color);
      transform: scale(1.02);
      box-shadow: 0 8px 24px rgba(44, 107, 237, 0.12);
}

.defect-item.empty-defect:hover .defect-info h4,
.defect-item.empty-defect:hover .defect-info p {
      transform: none;
      /* 移除悬停时的位移效果 */
      background: none;
      border: none;
      box-shadow: none;
}

.defect-item.empty-defect:hover .defect-info p::before {
      display: none;
      /* 移除悬停时的小圆点 */
}

/* 添加检测结果项的序号标记 */
.defect-item {
      counter-increment: defect-counter;
}

.defect-info h4::before {
      content: counter(defect-counter);
      position: absolute;
      left: -30px;
      top: 50%;
      transform: translateY(-50%);
      width: 20px;
      height: 20px;
      background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
      color: white;
      font-size: 12px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity 0.3s ease;
}

.defect-item:hover .defect-info h4::before {
      opacity: 1;
}

/* 添加检测结果的标签样式 */
.defect-tag {
      display: inline-block;
      padding: 4px 12px;
      border-radius: 12px;
      font-size: 12px;
      font-weight: 500;
      margin-bottom: 8px;
      background: rgba(44, 107, 237, 0.1);
      color: var(--primary-color);
      transition: all 0.3s ease;
}

.defect-item:hover .defect-tag {
      background: rgba(44, 107, 237, 0.15);
      transform: translateX(4px);
}

/* 模型区域美化 */
.model-section {
      width: 280px;
      min-width: 280px;
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      border-radius: var(--border-radius);
      padding: 20px;
      display: flex;
      flex-direction: column;
      gap: 20px;
      box-shadow: var(--glass-shadow);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      border: 1px solid var(--glass-border);
      position: relative;
      overflow: hidden;
}

.model-section::before {
      content: '';
      position: absolute;
      top: -50%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: radial-gradient(circle, rgba(32, 160, 170, 0.03) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.model-section:hover {
      box-shadow: 0 15px 35px rgba(32, 160, 170, 0.12);
      transform: translateY(-3px);
}

.model-section:hover::before {
      opacity: 1;
}

.model-header {
      margin-bottom: 16px;
}

.model-header h2 {
      margin: 0 0 16px;
      font-size: 16px;
      color: var(--text-primary);
      font-weight: 600;
      display: flex;
      align-items: center;
      position: relative;
      z-index: 1;
}

.model-header h2::before {
      content: "";
      display: inline-block;
      width: 6px;
      height: 6px;
      background-color: var(--secondary-color);
      border-radius: 50%;
      margin-right: 8px;
      box-shadow: 0 0 0 3px rgba(32, 160, 170, 0.15);
      animation: pulse-secondary 2s infinite;
}

@keyframes pulse-secondary {
      0% {
            box-shadow: 0 0 0 0 rgba(32, 160, 170, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(32, 160, 170, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(32, 160, 170, 0);
      }
}

/* 模型区域指标改进 */
.metrics {
      display: flex;
      flex-direction: column;
      gap: 16px;
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      padding: 18px;
      border-radius: 12px;
      border: 1px solid rgba(44, 107, 237, 0.15);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
}

.metrics::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 70% 30%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.metrics:hover {
      border-color: rgba(44, 107, 237, 0.3);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-2px);
}

.metrics:hover::before {
      opacity: 1;
}

.metric-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 14px;
      padding: 12px 14px;
      border-radius: 8px;
      background: var(--card-item-bg);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      z-index: 1;
      box-shadow: var(--card-item-shadow);
      margin-bottom: 8px;
      border-left: 3px solid transparent;
}

.metric-item:last-child {
      margin-bottom: 0;
}

.metric-item:nth-child(1) {
      border-left-color: #81c784;
}

.metric-item:nth-child(2) {
      border-left-color: #64b5f6;
}

.metric-item:nth-child(3) {
      border-left-color: #ffb74d;
}

.metric-item:nth-child(4) {
      border-left-color: #ba68c8;
}

.metric-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 0;
      height: 100%;
      background: linear-gradient(90deg, rgba(44, 107, 237, 0.03), transparent);
      transition: width 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      z-index: -1;
      border-radius: 5px;
}

.metric-item:hover {
      background: var(--card-item-hover-bg);
      transform: translateX(3px);
      box-shadow: var(--card-item-hover-shadow);
}

.metric-item:hover::before {
      width: 100%;
}

.metric-value {
      font-weight: 600;
      color: #fff;
      padding: 5px 12px;
      border-radius: 12px;
      font-size: 13px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
}

.metric-item:nth-child(1) .metric-value {
      background: linear-gradient(135deg, #81c784, #a5d6a7);
}

.metric-item:nth-child(2) .metric-value {
      background: linear-gradient(135deg, #64b5f6, #90caf9);
}

.metric-item:nth-child(3) .metric-value {
      background: linear-gradient(135deg, #ffb74d, #ffcc80);
}

.metric-item:nth-child(4) .metric-value {
      background: linear-gradient(135deg, #ba68c8, #ce93d8);
}

@keyframes shimmer {
      0% {
            background-position: -200% 0;
      }

      100% {
            background-position: 200% 0;
      }
}

.metric-item:hover .metric-value {
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
      transform: scale(1.05);
}

/* 阈值设置区域美化 */
.threshold-settings {
      flex: 1;
}

.threshold-settings h3 {
      margin: 0 0 18px;
      font-size: 15px;
      color: var(--text-primary);
      font-weight: 600;
      display: flex;
      align-items: center;
      padding-left: 2px;
      position: relative;
      z-index: 1;
}

.threshold-settings h3::before {
      content: "";
      display: inline-block;
      width: 6px;
      height: 6px;
      background-color: var(--accent-color);
      border-radius: 50%;
      margin-right: 8px;
      box-shadow: 0 0 0 3px rgba(123, 93, 242, 0.15);
      animation: pulse-accent 2s infinite;
}

.threshold-item {
      margin-bottom: 24px;
      padding: 14px;
      border-radius: 10px;
      background: #edf1f8;
      /* 加深背景色 */
      background-image: var(--card-gradient);
      border: 1px solid rgba(44, 107, 237, 0.15);
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      position: relative;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(44, 107, 237, 0.1);
}

.threshold-item::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: radial-gradient(circle at 30% 70%, rgba(44, 107, 237, 0.05) 0%, transparent 70%);
      opacity: 0;
      transition: opacity 0.5s ease;
      z-index: 0;
      pointer-events: none;
}

.threshold-item:hover {
      border-color: rgba(44, 107, 237, 0.3);
      box-shadow: 0 12px 28px rgba(44, 107, 237, 0.15);
      transform: translateY(-3px);
}

.threshold-item:hover::before {
      opacity: 1;
}

.threshold-item span {
      font-size: 14px;
      color: var(--text-secondary);
      display: flex;
      justify-content: space-between;
      margin-bottom: 10px;
      font-weight: 500;
      align-items: center;
      position: relative;
      z-index: 1;
}

.threshold-item span::after {
      content: attr(data-value);
      font-weight: 600;
      color: var(--primary-color);
      font-size: 13px;
      background: var(--badge-bg);
      padding: 3px 10px;
      border-radius: 12px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 1px 3px rgba(44, 107, 237, 0.05);
}

.threshold-item:hover span::after {
      background: var(--badge-hover-bg);
      transform: scale(1.05);
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.1);
}

/* 调整滑块相关样式 */
.threshold-item .ant-slider {
      margin: 16px 0 6px;
      position: relative;
      z-index: 1;
}

.threshold-item .ant-slider-rail {
      height: 6px;
      border-radius: 3px;
      background-color: rgba(133, 153, 179, 0.15);
      transition: background-color 0.3s ease;
}

.threshold-item .ant-slider-track {
      height: 6px;
      border-radius: 3px;
      background: linear-gradient(90deg, var(--primary-color) 0%, var(--secondary-color) 100%);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 1px 3px rgba(44, 107, 237, 0.2);
}

.threshold-item .ant-slider-handle {
      width: 18px;
      height: 18px;
      margin-top: -6px;
      border: 2px solid var(--primary-color);
      background-color: white;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      position: absolute;
      z-index: 5;
      cursor: grab;
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
}

.threshold-item .ant-slider-handle:active {
      cursor: grabbing;
      transform: scale(1.2);
      box-shadow: 0 0 0 5px rgba(44, 107, 237, 0.15);
}

.threshold-item:hover .ant-slider-rail {
      background-color: rgba(133, 153, 179, 0.2);
}

.threshold-item:hover .ant-slider-track {
      box-shadow: 0 2px 6px rgba(44, 107, 237, 0.3);
}

/* 相机模式美化 */
.camera-active {
      background-color: #000 !important;
      border-radius: 12px;
      overflow: hidden;
      transition: all 0.4s cubic-bezier(0.19, 1, 0.22, 1);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
      border: 1px solid rgba(255, 255, 255, 0.05);
}

.camera-active::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 2px;
      background: linear-gradient(90deg, var(--primary-color), var(--secondary-color), var(--accent-color));
      z-index: 100;
      animation: scan 2s linear infinite;
}

@keyframes scan {
      0% {
            top: 0;
      }

      50% {
            top: 100%;
      }

      100% {
            top: 0;
      }
}

.camera-active video {
      max-width: 100%;
      max-height: 100%;
      object-fit: contain;
      display: block !important;
}



.system-info {
      flex: 1;
      color: var(--text-secondary);
      font-size: 13px;
      transition: var(--transition);
}

.database-status {
      color: var(--success-color);
      font-size: 13px;
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 4px 12px;
      background: rgba(8, 163, 123, 0.08);
      border-radius: 20px;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
}

.database-status:hover {
      background: rgba(8, 163, 123, 0.12);
      transform: translateY(-1px);
      box-shadow: 0 2px 6px rgba(8, 163, 123, 0.1);
}

.database-status::before {
      content: "";
      display: inline-block;
      width: 8px;
      height: 8px;
      background-color: var(--success-color);
      border-radius: 50%;
      animation: pulse 1.5s infinite;
}

@keyframes pulse {
      0% {
            box-shadow: 0 0 0 0 rgba(8, 163, 123, 0.4);
      }

      70% {
            box-shadow: 0 0 0 6px rgba(8, 163, 123, 0);
      }

      100% {
            box-shadow: 0 0 0 0 rgba(8, 163, 123, 0);
      }
}

/* 加载动画 */
@keyframes spinner {
      to {
            transform: rotate(360deg);
      }
}

.loading-spinner {
      display: inline-block;
      width: 16px;
      height: 16px;
      border: 2px solid rgba(255, 255, 255, 0.3);
      border-top-color: white;
      border-radius: 50%;
      margin-left: 8px;
      animation: spinner 0.8s linear infinite;
}

/* 确保外框获得焦点时的样式美化 */
.image-wrapper:focus-within {
      outline: none;
      border-color: var(--primary-color);
      box-shadow: 0 0 0 3px rgba(44, 107, 237, 0.1);
}

/* 防止滚动问题 */
.no-scroll {
      overflow: hidden !important;
}

/* 美化边界框 */
.bounding-box {
      position: absolute;
      border: 2px solid;
      pointer-events: none;
      z-index: 100;
      transform-origin: top left;
      box-shadow: 0 0 12px rgba(0, 0, 0, 0.2);
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
      border-radius: 2px;
}

.bounding-box:hover {
      box-shadow: 0 0 18px rgba(0, 0, 0, 0.3);
}

.bounding-box-label {
      position: absolute;
      top: -26px;
      left: 0;
      color: white;
      padding: 3px 10px;
}

.defect-item:not(.empty-defect) .defect-info h4 {
      font-size: 16px;
}

.defect-item:not(.empty-defect) .defect-info h4 {
      font-weight: 600;
}

/* 添加开始检测按钮的圆角样式 */
.start-detection-button {
      border-radius: 12px !important;
      /* 使用更大的圆角 */
      height: 44px !important;
      font-size: 16px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 8px !important;
      position: relative !important;
      box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
      transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1) !important;
}

.start-detection-button:hover {
      transform: translateY(-2px) !important;
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16) !important;
}

.start-detection-button:active {
      transform: translateY(1px) !important;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}